~ruther/qmk_firmware

d56ee70c524b4fc4d1638e5e8c4bdeb89e752993 — Ryan 1 year, 8 months ago 3f1b3a5
Rename `DRIVER_ADDR_n` defines (#22200)

Co-authored-by: Nick Brassel <nick@tzarc.org>
208 files changed, 768 insertions(+), 686 deletions(-)

M docs/feature_led_matrix.md
M docs/feature_rgb_matrix.md
M drivers/led/aw20216s.h
M drivers/led/issi/is31fl3731-simple.h
M drivers/led/issi/is31fl3731.h
M drivers/led/issi/is31fl3733.h
M drivers/led/issi/is31fl3736.h
M drivers/led/issi/is31fl3737.h
M drivers/led/issi/is31fl3741.h
M keyboards/4pplet/perk60_iso/rev_a/config.h
M keyboards/abko/ak84bt/config.h
M keyboards/acheron/apollo/87h/gamma/config.h
M keyboards/aeboards/satellite/rev1/config.h
M keyboards/aeboards/satellite/rev1/rev1.c
M keyboards/akko/5108/config.h
M keyboards/akko/acr87/config.h
M keyboards/akko/top40/config.h
M keyboards/axolstudio/yeti/hotswap/config.h
M keyboards/canary/canary60rgb/v1/config.h
M keyboards/chosfox/cf81/config.h
M keyboards/clueboard/66_hotswap/gen1/config.h
M keyboards/dp60/config.h
M keyboards/drop/alt/v2/config.h
M keyboards/drop/cstm80/config.h
M keyboards/drop/ctrl/v2/config.h
M keyboards/drop/sense75/config.h
M keyboards/drop/shift/v2/config.h
M keyboards/durgod/dgk6x/config.h
M keyboards/dztech/dz60rgb/v1/config.h
M keyboards/dztech/dz60rgb/v2/config.h
M keyboards/dztech/dz60rgb/v2_1/config.h
M keyboards/dztech/dz60rgb_ansi/v1/config.h
M keyboards/dztech/dz60rgb_ansi/v2/config.h
M keyboards/dztech/dz60rgb_ansi/v2_1/config.h
M keyboards/dztech/dz60rgb_wkl/v1/config.h
M keyboards/dztech/dz60rgb_wkl/v2/config.h
M keyboards/dztech/dz60rgb_wkl/v2_1/config.h
M keyboards/dztech/dz64rgb/config.h
M keyboards/dztech/dz65rgb/v1/config.h
M keyboards/dztech/dz65rgb/v2/config.h
M keyboards/dztech/dz65rgb/v3/config.h
M keyboards/dztech/tofu/ii/v1/config.h
M keyboards/dztech/tofu/jr/v1/config.h
M keyboards/ergodox_ez/config.h
M keyboards/evyd13/atom47/rev5/config.h
M keyboards/exclusive/e6_rgb/config.h
M keyboards/fallacy/config.h
M keyboards/fallacy/indicators.c
M keyboards/feker/ik75/config.h
M keyboards/ferris/0_2/bling/config.h
M keyboards/flashquark/horizon_z/config.h
M keyboards/frooastboard/walnut/config.h
M keyboards/geekboards/tester/config.h
M keyboards/gizmo_engineering/gk6/config.h
M keyboards/gmmk/gmmk2/p65/config.h
M keyboards/gmmk/gmmk2/p96/config.h
M keyboards/gmmk/numpad/config.h
M keyboards/gmmk/numpad/numpad.c
M keyboards/gmmk/pro/config.h
M keyboards/handwired/orbweaver/config.h
M keyboards/hs60/v1/config.h
M keyboards/ilumkb/simpler61/config.h
M keyboards/ilumkb/simpler64/config.h
M keyboards/inett_studio/sqx/hotswap/config.h
M keyboards/inett_studio/sqx/universal/config.h
M keyboards/inland/kb83/config.h
M keyboards/inland/mk47/config.h
M keyboards/input_club/ergodox_infinity/config.h
M keyboards/input_club/infinity60/led/config.h
M keyboards/input_club/k_type/config.h
M keyboards/input_club/k_type/k_type-rgbdriver.c
M keyboards/input_club/whitefox/config.h
M keyboards/kbdcraft/adam64/config.h
M keyboards/kbdfans/bella/rgb/config.h
M keyboards/kbdfans/bella/rgb_iso/config.h
M keyboards/kbdfans/boop65/rgb/config.h
M keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
M keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
M keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
M keyboards/kbdfans/kbdmini/config.h
M keyboards/kbdfans/maja/config.h
M keyboards/keychron/c1_pro/ansi/rgb/config.h
M keyboards/keychron/c1_pro/ansi/white/config.h
M keyboards/keychron/c2_pro/ansi/rgb/config.h
M keyboards/keychron/c2_pro/ansi/white/config.h
M keyboards/keychron/q0/base/config.h
M keyboards/keychron/q0/plus/config.h
M keyboards/keychron/q10/config.h
M keyboards/keychron/q11/config.h
M keyboards/keychron/q12/config.h
M keyboards/keychron/q1v1/config.h
M keyboards/keychron/q1v2/ansi/ansi.c
M keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
M keyboards/keychron/q1v2/config.h
M keyboards/keychron/q1v2/info.json
M keyboards/keychron/q1v2/iso/iso.c
M keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
M keyboards/keychron/q1v2/jis/jis.c
M keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
M keyboards/keychron/q2/config.h
M keyboards/keychron/q3/config.h
M keyboards/keychron/q4/ansi/v1/config.h
M keyboards/keychron/q4/ansi/v2/config.h
M keyboards/keychron/q4/iso/config.h
M keyboards/keychron/q5/config.h
M keyboards/keychron/q6/config.h
M keyboards/keychron/q60/config.h
M keyboards/keychron/q65/config.h
M keyboards/keychron/q7/config.h
M keyboards/keychron/q8/config.h
M keyboards/keychron/q9/config.h
M keyboards/keychron/q9_plus/config.h
M keyboards/keychron/s1/ansi/rgb/config.h
M keyboards/keychron/s1/ansi/white/config.h
M keyboards/keychron/v1/config.h
M keyboards/keychron/v10/config.h
M keyboards/keychron/v2/config.h
M keyboards/keychron/v3/config.h
M keyboards/keychron/v4/config.h
M keyboards/keychron/v5/config.h
M keyboards/keychron/v6/config.h
M keyboards/keychron/v7/config.h
M keyboards/keychron/v8/config.h
M keyboards/kprepublic/bm40hsrgb/rev2/config.h
M keyboards/kprepublic/bm60hsrgb/rev2/config.h
M keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
M keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h
M keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
M keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
M keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
M keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
M keyboards/kprepublic/bm68hsrgb/rev2/config.h
M keyboards/kprepublic/bm80v2/config.h
M keyboards/kprepublic/bm80v2_iso/config.h
M keyboards/latincompass/latin17rgb/config.h
M keyboards/latincompass/latin60rgb/config.h
M keyboards/latincompass/latin6rgb/config.h
M keyboards/matrix/m20add/config.h
M keyboards/matrix/m20add/rgb_ring.c
M keyboards/matrix/noah/config.h
M keyboards/mechlovin/adelais/rgb_led/rev2/config.h
M keyboards/mechlovin/adelais/rgb_led/rev3/config.h
M keyboards/mechlovin/delphine/rgb_led/config.h
M keyboards/mechlovin/hannah60rgb/rev2/config.h
M keyboards/mechlovin/infinity87/rgb_rev1/config.h
M keyboards/mechlovin/olly/octagon/config.h
M keyboards/mechlovin/zed65/mono_led/config.h
M keyboards/melgeek/mach80/config.h
M keyboards/melgeek/mach80/rev1/rev1.c
M keyboards/melgeek/mach80/rev2/rev2.c
M keyboards/melgeek/mj61/config.h
M keyboards/melgeek/mj63/config.h
M keyboards/melgeek/mj64/config.h
M keyboards/melgeek/mj65/config.h
M keyboards/melgeek/mojo68/config.h
M keyboards/melgeek/mojo68/rev1/rev1.c
M keyboards/melgeek/mojo75/config.h
M keyboards/melgeek/tegic/config.h
M keyboards/melgeek/z70ultra/config.h
M keyboards/melgeek/z70ultra/z70ultra.c
M keyboards/miller/gm862/config.h
M keyboards/monsgeek/m1/config.h
M keyboards/monsgeek/m5/config.h
M keyboards/monsgeek/m6/config.h
M keyboards/moonlander/config.h
M keyboards/mt/mt64rgb/config.h
M keyboards/mt/mt84/config.h
M keyboards/neson_design/700e/700e.c
M keyboards/neson_design/700e/config.h
M keyboards/neson_design/n6/config.h
M keyboards/neson_design/n6/n6.c
M keyboards/opendeck/32/rev1/config.h
M keyboards/owlab/voice65/hotswap/config.h
M keyboards/owlab/voice65/soldered/config.h
M keyboards/planck/ez/config.h
M keyboards/planck/light/config.h
M keyboards/playkbtw/pk64rgb/config.h
M keyboards/projectd/65/projectd_65_ansi/config.h
M keyboards/redragon/k667/config.h
M keyboards/skyloong/gk61/v1/config.h
M keyboards/smallkeyboard/config.h
M keyboards/teleport/native/config.h
M keyboards/terrazzo/config.h
M keyboards/tkc/portico/config.h
M keyboards/tkc/portico68v2/config.h
M keyboards/tkc/portico75/config.h
M keyboards/wilba_tech/wt60_a/config.h
M keyboards/wilba_tech/wt65_a/config.h
M keyboards/wilba_tech/wt65_b/config.h
M keyboards/wilba_tech/wt75_a/config.h
M keyboards/wilba_tech/wt75_b/config.h
M keyboards/wilba_tech/wt75_c/config.h
M keyboards/wilba_tech/wt80_a/config.h
M keyboards/wilba_tech/wt_mono_backlight.c
M keyboards/xbows/knight/config.h
M keyboards/xbows/knight_plus/config.h
M keyboards/xbows/nature/config.h
M keyboards/xbows/numpad/config.h
M keyboards/xbows/ranger/config.h
M keyboards/xbows/woody/config.h
M keyboards/xelus/dawn60/rev1_qmk/config.h
M keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c
M keyboards/xelus/pachi/rgb/rev1/config.h
M keyboards/xelus/pachi/rgb/rev1/rev1.c
M keyboards/xelus/pachi/rgb/rev2/config.h
M keyboards/xelus/pachi/rgb/rev2/rev2.c
M quantum/led_matrix/led_matrix_drivers.c
M quantum/rgb_matrix/rgb_matrix_drivers.c
M docs/feature_led_matrix.md => docs/feature_led_matrix.md +7 -7
@@ 23,10 23,10 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>
| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `IS31FL3731_DRIVER_COUNT` | (Required) How many LED driver IC's are present | |
| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
| `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | |
| `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | |
| `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | |
| `LED_DRIVER_ADDR_4` | (Optional) Address for the fourth LED driver | |
| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first LED driver | |
| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second LED driver | |
| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third LED driver | |
| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth LED driver | |

Here is an example using 2 drivers.



@@ 40,8 40,8 @@ Here is an example using 2 drivers.
// 11 AD <-> VCC
// ADDR represents A1:A0 of the 7-bit address.
// The result is: 0b11101(ADDR)
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define LED_DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA

#define IS31FL3731_DRIVER_COUNT 2
#define LED_DRIVER_1_LED_TOTAL 25


@@ 51,7 51,7 @@ Here is an example using 2 drivers.

!> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`.

For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31fl3731_leds`.
For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.

Define these arrays listing all the LEDs in your `<keyboard>.c`:


M docs/feature_rgb_matrix.md => docs/feature_rgb_matrix.md +37 -37
@@ 24,10 24,10 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_<N>` de
| `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | |
| `IS31FL3731_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |

Here is an example using 2 drivers.



@@ 41,8 41,8 @@ Here is an example using 2 drivers.
// 11 AD <-> VCC
// ADDR represents A1:A0 of the 7-bit address.
// The result is: 0b11101(ADDR)
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA

#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 25


@@ 52,7 52,7 @@ Here is an example using 2 drivers.

!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.

For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31fl3731_leds`.
For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.

Define these arrays listing all the LEDs in your `<keyboard>.c`:



@@ 93,14 93,14 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
| `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `IS31FL3733_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `DRIVER_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
| `DRIVER_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
| `DRIVER_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
| `DRIVER_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |
| `IS31FL3733_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3733_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3733_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3733_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3733_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
| `IS31FL3733_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
| `IS31FL3733_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
| `IS31FL3733_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |

The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3733_SWPULLUP`/`IS31FL3733_CSPULLUP` are given the value of `IS31FL3733_PUR_0R`), the values that can be set to enable de-ghosting are as follows:



@@ 127,8 127,8 @@ Here is an example using 2 drivers.
// ADDR1 represents A1:A0 of the 7-bit address.
// ADDR2 represents A3:A2 of the 7-bit address.
// The result is: 0b101(ADDR2)(ADDR1)
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC

#define IS31FL3733_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 58


@@ 180,10 180,10 @@ Configure the hardware via your `config.h`:
| `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `IS31FL3736_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3736_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3736_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3736_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3736_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |

The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3736_SWPULLUP`/`IS31FL3736_CSPULLUP` are given the value of `IS31FL3736_PUR_0R`), the values that can be set to enable de-ghosting are as follows:



@@ 211,8 211,8 @@ Here is an example using 2 drivers.
// ADDR1 represents A1:A0 of the 7-bit address.
// ADDR2 represents A3:A2 of the 7-bit address.
// The result is: 0b101(ADDR2)(ADDR1)
#define DRIVER_ADDR_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3736_I2C_ADDRESS_GND_SCL
#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_I2C_ADDRESS_2 IS31FL3736_I2C_ADDRESS_GND_SCL

#define IS31FL3736_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30


@@ 257,10 257,10 @@ Configure the hardware via your `config.h`:
| `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `IS31FL3737_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
| `IS31FL3737_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
| `IS31FL3737_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
| `IS31FL3737_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
| `IS31FL3737_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |

The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3737_SWPULLUP`/`IS31FL3737_CSPULLUP` are given the value of `IS31FL3737_PUR_0R`), the values that can be set to enable de-ghosting are as follows:



@@ 287,8 287,8 @@ Here is an example using 2 drivers.
// 1111 ADDR <-> VCC
// ADDR represents A3:A0 of the 7-bit address.
// The result is: 0b101(ADDR)
#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_SCL
#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
#define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_SCL

#define IS31FL3737_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30


@@ 480,10 480,10 @@ You can use up to 2 AW20216S IC's. Do not specify `DRIVER_<N>_xxx` defines for I

| Variable | Description | Default |
|----------|-------------|---------|
| `AW20216S_DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line  | B13 |
| `AW20216S_DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line  | |
| `AW20216S_DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line  | C13 |
| `AW20216S_DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line  | |
| `AW20216S_CS_PIN_1` | (Required) MCU pin connected to first RGB driver chip select line  | B13 |
| `AW20216S_CS_PIN_2` | (Optional) MCU pin connected to second RGB driver chip select line  | |
| `AW20216S_EN_PIN_1` | (Required) MCU pin connected to first RGB driver hardware enable line  | C13 |
| `AW20216S_EN_PIN_2` | (Optional) MCU pin connected to second RGB driver hardware enable line  | |
| `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver  | |
| `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver  | |
| `AW20216S_DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |


@@ 496,11 496,11 @@ You can use up to 2 AW20216S IC's. Do not specify `DRIVER_<N>_xxx` defines for I
Here is an example using 2 drivers.

```c
#define AW20216S_DRIVER_1_CS B13
#define AW20216S_DRIVER_2_CS B14
#define AW20216S_CS_PIN_1 B13
#define AW20216S_CS_PIN_2 B14
// Hardware enable lines may be connected to the same pin
#define AW20216S_DRIVER_1_EN C13
#define AW20216S_DRIVER_2_EN C13
#define AW20216S_EN_PIN_1 C13
#define AW20216S_EN_PIN_2 C13

#define AW20216S_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66

M drivers/led/aw20216s.h => drivers/led/aw20216s.h +4 -4
@@ 38,16 38,16 @@
#    define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR
#endif
#ifdef DRIVER_1_CS
#    define AW20216S_DRIVER_1_CS DRIVER_1_CS
#    define AW20216S_CS_PIN_1 DRIVER_1_CS
#endif
#ifdef DRIVER_2_CS
#    define AW20216S_DRIVER_2_CS DRIVER_2_CS
#    define AW20216S_CS_PIN_2 DRIVER_2_CS
#endif
#ifdef DRIVER_1_EN
#    define AW20216S_DRIVER_1_EN DRIVER_1_EN
#    define AW20216S_EN_PIN_1 DRIVER_1_EN
#endif
#ifdef DRIVER_2_EN
#    define AW20216S_DRIVER_2_EN DRIVER_2_EN
#    define AW20216S_EN_PIN_2 DRIVER_2_EN
#endif

#define aw_led aw20216s_led_t

M drivers/led/issi/is31fl3731-simple.h => drivers/led/issi/is31fl3731-simple.h +12 -0
@@ 23,6 23,18 @@
#include "progmem.h"

// ======== DEPRECATED DEFINES - DO NOT USE ========
#ifdef LED_DRIVER_ADDR_1
#    define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1
#endif
#ifdef LED_DRIVER_ADDR_2
#    define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2
#endif
#ifdef LED_DRIVER_ADDR_3
#    define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3
#endif
#ifdef LED_DRIVER_ADDR_4
#    define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4
#endif
#ifdef LED_DRIVER_COUNT
#    define IS31FL3731_DRIVER_COUNT LED_DRIVER_COUNT
#endif

M drivers/led/issi/is31fl3731.h => drivers/led/issi/is31fl3731.h +12 -0
@@ 22,6 22,18 @@
#include "progmem.h"

// ======== DEPRECATED DEFINES - DO NOT USE ========
#ifdef DRIVER_ADDR_1
#    define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1
#endif
#ifdef DRIVER_ADDR_2
#    define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2
#endif
#ifdef DRIVER_ADDR_3
#    define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3
#endif
#ifdef DRIVER_ADDR_4
#    define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4
#endif
#ifdef DRIVER_COUNT
#    define IS31FL3731_DRIVER_COUNT DRIVER_COUNT
#endif

M drivers/led/issi/is31fl3733.h => drivers/led/issi/is31fl3733.h +24 -0
@@ 24,6 24,30 @@
#include "progmem.h"

// ======== DEPRECATED DEFINES - DO NOT USE ========
#ifdef DRIVER_ADDR_1
#    define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1
#endif
#ifdef DRIVER_ADDR_2
#    define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2
#endif
#ifdef DRIVER_ADDR_3
#    define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3
#endif
#ifdef DRIVER_ADDR_4
#    define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4
#endif
#ifdef DRIVER_SYNC_1
#    define IS31FL3733_SYNC_1 DRIVER_SYNC_1
#endif
#ifdef DRIVER_ADDR_2
#    define IS31FL3733_SYNC_2 DRIVER_SYNC_2
#endif
#ifdef DRIVER_ADDR_3
#    define IS31FL3733_SYNC_3 DRIVER_SYNC_3
#endif
#ifdef DRIVER_ADDR_4
#    define IS31FL3733_SYNC_4 DRIVER_SYNC_4
#endif
#ifdef DRIVER_COUNT
#    define IS31FL3733_DRIVER_COUNT DRIVER_COUNT
#endif

M drivers/led/issi/is31fl3736.h => drivers/led/issi/is31fl3736.h +12 -0
@@ 22,6 22,18 @@
#include "progmem.h"

// ======== DEPRECATED DEFINES - DO NOT USE ========
#ifdef DRIVER_ADDR_1
#    define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1
#endif
#ifdef DRIVER_ADDR_2
#    define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2
#endif
#ifdef DRIVER_ADDR_3
#    define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3
#endif
#ifdef DRIVER_ADDR_4
#    define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4
#endif
#ifdef DRIVER_COUNT
#    define IS31FL3736_DRIVER_COUNT DRIVER_COUNT
#endif

M drivers/led/issi/is31fl3737.h => drivers/led/issi/is31fl3737.h +12 -0
@@ 24,6 24,18 @@
#include "progmem.h"

// ======== DEPRECATED DEFINES - DO NOT USE ========
#ifdef DRIVER_ADDR_1
#    define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1
#endif
#ifdef DRIVER_ADDR_2
#    define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2
#endif
#ifdef DRIVER_ADDR_3
#    define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3
#endif
#ifdef DRIVER_ADDR_4
#    define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4
#endif
#ifdef DRIVER_COUNT
#    define IS31FL3737_DRIVER_COUNT DRIVER_COUNT
#endif

M drivers/led/issi/is31fl3741.h => drivers/led/issi/is31fl3741.h +12 -0
@@ 24,6 24,18 @@
#include "progmem.h"

// ======== DEPRECATED DEFINES - DO NOT USE ========
#ifdef DRIVER_ADDR_1
#    define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1
#endif
#ifdef DRIVER_ADDR_2
#    define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2
#endif
#ifdef DRIVER_ADDR_3
#    define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3
#endif
#ifdef DRIVER_ADDR_4
#    define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4
#endif
#ifdef DRIVER_COUNT
#    define IS31FL3741_DRIVER_COUNT DRIVER_COUNT
#endif

M keyboards/4pplet/perk60_iso/rev_a/config.h => keyboards/4pplet/perk60_iso/rev_a/config.h +1 -1
@@ 21,7 21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 62
#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ

M keyboards/abko/ak84bt/config.h => keyboards/abko/ak84bt/config.h +2 -2
@@ 17,8 17,8 @@
#pragma once


#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC

#define IS31FL3733_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 45

M keyboards/acheron/apollo/87h/gamma/config.h => keyboards/acheron/apollo/87h/gamma/config.h +1 -1
@@ 25,7 25,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE

// RGB Matrix defines
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND

#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 87

M keyboards/aeboards/satellite/rev1/config.h => keyboards/aeboards/satellite/rev1/config.h +2 -2
@@ 17,8 17,8 @@
#pragma once

//RGB Matrix defines
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA

#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36

M keyboards/aeboards/satellite/rev1/rev1.c => keyboards/aeboards/satellite/rev1/rev1.c +6 -6
@@ 145,8 145,8 @@ led_config_t g_led_config = { {
// Custom Driver
static void init(void) {
    i2c_init();
    is31fl3731_init(DRIVER_ADDR_1);
    is31fl3731_init(DRIVER_ADDR_2);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
    for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
        bool enabled = !(   ( index == 18+5) || //B5
                            ( index == 36+17) || //C17


@@ 154,13 154,13 @@ static void init(void) {
                        );
        is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
}

static void flush(void) {
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
}

static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {

M keyboards/akko/5108/config.h => keyboards/akko/5108/config.h +2 -2
@@ 35,8 35,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */

M keyboards/akko/acr87/config.h => keyboards/akko/acr87/config.h +3 -3
@@ 32,9 32,9 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 3
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_3 SNLED27351_I2C_ADDRESS_SDA
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_3 SNLED27351_I2C_ADDRESS_SDA

#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C

M keyboards/akko/top40/config.h => keyboards/akko/top40/config.h +2 -2
@@ 32,8 32,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */

M keyboards/axolstudio/yeti/hotswap/config.h => keyboards/axolstudio/yeti/hotswap/config.h +1 -1
@@ 61,7 61,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define RGB_MATRIX_LED_FLUSH_LIMIT 16       // 16 is equivalent to limiting to 60fps
#    define RGB_DISABLE_WHEN_USB_SUSPENDED      // turn off effects when suspended
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 64
#endif

M keyboards/canary/canary60rgb/v1/config.h => keyboards/canary/canary60rgb/v1/config.h +1 -1
@@ 33,7 33,7 @@
#    define DISABLE_RGB_MATRIX_MULTISPLASH
#    define DISABLE_RGB_MATRIX_SOLID_SPLASH
#    define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 63
#endif

M keyboards/chosfox/cf81/config.h => keyboards/chosfox/cf81/config.h +2 -2
@@ 32,8 32,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */


M keyboards/clueboard/66_hotswap/gen1/config.h => keyboards/clueboard/66_hotswap/gen1/config.h +1 -1
@@ 33,7 33,7 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define I2C1_SCL_PIN B8
#define I2C1_SDA_PIN B9


M keyboards/dp60/config.h => keyboards/dp60/config.h +2 -2
@@ 33,8 33,8 @@
//#define NO_PRINT

//rgb matrix setting
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36

M keyboards/drop/alt/v2/config.h => keyboards/drop/alt/v2/config.h +2 -2
@@ 14,8 14,8 @@
#define EXTERNAL_EEPROM_WP_PIN B5
#define EEPROM_I2C_24LC256

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_DRIVER_COUNT 2
#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ


M keyboards/drop/cstm80/config.h => keyboards/drop/cstm80/config.h +2 -2
@@ 9,8 9,8 @@
#define EXTERNAL_EEPROM_WP_PIN B7
#define EEPROM_I2C_24LC256

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_DRIVER_COUNT 2
#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ


M keyboards/drop/ctrl/v2/config.h => keyboards/drop/ctrl/v2/config.h +2 -2
@@ 14,8 14,8 @@
#define EXTERNAL_EEPROM_WP_PIN B5
#define EEPROM_I2C_24LC256

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_DRIVER_COUNT 2
#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ


M keyboards/drop/sense75/config.h => keyboards/drop/sense75/config.h +2 -2
@@ 9,8 9,8 @@
#define EXTERNAL_EEPROM_WP_PIN B7
#define EEPROM_I2C_24LC256

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_DRIVER_COUNT 2
#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ


M keyboards/drop/shift/v2/config.h => keyboards/drop/shift/v2/config.h +3 -3
@@ 14,9 14,9 @@
#define EXTERNAL_EEPROM_WP_PIN B5
#define EEPROM_I2C_24LC256

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_VCC
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define DRIVER_ADDR_3 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
#define IS31FL3733_I2C_ADDRESS_3 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_DRIVER_COUNT 3
#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ


M keyboards/durgod/dgk6x/config.h => keyboards/durgod/dgk6x/config.h +2 -2
@@ 34,8 34,8 @@
#define LED_MR_LOCK_PIN     LED_SCROLL_LOCK_PIN

#ifdef RGB_MATRIX_ENABLE
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC

#define IS31FL3733_DRIVER_COUNT 2
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

M keyboards/dztech/dz60rgb/v1/config.h => keyboards/dztech/dz60rgb/v1/config.h +1 -1
@@ 55,7 55,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 63
#endif

M keyboards/dztech/dz60rgb/v2/config.h => keyboards/dztech/dz60rgb/v2/config.h +1 -1
@@ 53,7 53,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 63
#endif

M keyboards/dztech/dz60rgb/v2_1/config.h => keyboards/dztech/dz60rgb/v2_1/config.h +1 -1
@@ 69,7 69,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 63
#endif

M keyboards/dztech/dz60rgb_ansi/v1/config.h => keyboards/dztech/dz60rgb_ansi/v1/config.h +1 -1
@@ 55,7 55,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 61
#endif

M keyboards/dztech/dz60rgb_ansi/v2/config.h => keyboards/dztech/dz60rgb_ansi/v2/config.h +1 -1
@@ 53,7 53,7 @@
#    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 61
#endif

M keyboards/dztech/dz60rgb_ansi/v2_1/config.h => keyboards/dztech/dz60rgb_ansi/v2_1/config.h +1 -1
@@ 69,7 69,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 61
#endif

M keyboards/dztech/dz60rgb_wkl/v1/config.h => keyboards/dztech/dz60rgb_wkl/v1/config.h +1 -1
@@ 55,7 55,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 62
#endif

M keyboards/dztech/dz60rgb_wkl/v2/config.h => keyboards/dztech/dz60rgb_wkl/v2/config.h +1 -1
@@ 50,7 50,7 @@
#    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 62
#endif

M keyboards/dztech/dz60rgb_wkl/v2_1/config.h => keyboards/dztech/dz60rgb_wkl/v2_1/config.h +1 -1
@@ 69,7 69,7 @@
#    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1      IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1      IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT       1
#    define RGB_MATRIX_LED_COUNT   62
#endif

M keyboards/dztech/dz64rgb/config.h => keyboards/dztech/dz64rgb/config.h +1 -1
@@ 48,7 48,7 @@
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 64
#endif

M keyboards/dztech/dz65rgb/v1/config.h => keyboards/dztech/dz65rgb/v1/config.h +2 -2
@@ 70,8 70,8 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 35
#    define DRIVER_2_LED_TOTAL 33

M keyboards/dztech/dz65rgb/v2/config.h => keyboards/dztech/dz65rgb/v2/config.h +2 -2
@@ 70,8 70,8 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 35
#    define DRIVER_2_LED_TOTAL 33

M keyboards/dztech/dz65rgb/v3/config.h => keyboards/dztech/dz65rgb/v3/config.h +1 -1
@@ 72,7 72,7 @@
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 68
#    define DRIVER_INDICATOR_LED_TOTAL 0

M keyboards/dztech/tofu/ii/v1/config.h => keyboards/dztech/tofu/ii/v1/config.h +2 -2
@@ 79,8 79,8 @@
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC
#    define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
#    define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC
#    define IS31FL3737_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 46
#    define DRIVER_2_LED_TOTAL 20

M keyboards/dztech/tofu/jr/v1/config.h => keyboards/dztech/tofu/jr/v1/config.h +2 -2
@@ 79,8 79,8 @@
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC
#    define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
#    define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC
#    define IS31FL3737_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 48
#    define DRIVER_2_LED_TOTAL 20

M keyboards/ergodox_ez/config.h => keyboards/ergodox_ez/config.h +2 -2
@@ 91,8 91,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.


// RGB backlight
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 24
#define DRIVER_2_LED_TOTAL 24

M keyboards/evyd13/atom47/rev5/config.h => keyboards/evyd13/atom47/rev5/config.h +1 -1
@@ 38,7 38,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 64


M keyboards/exclusive/e6_rgb/config.h => keyboards/exclusive/e6_rgb/config.h +1 -1
@@ 4,7 4,7 @@
 */
#pragma once

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND

#define IS31FL3733_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 63

M keyboards/fallacy/config.h => keyboards/fallacy/config.h +1 -1
@@ 18,7 18,7 @@
/* IS31FL3731 driver address (for status LEDs)
 * Using the default defines here, but using a custom implementation
 */
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 3


M keyboards/fallacy/indicators.c => keyboards/fallacy/indicators.c +3 -3
@@ 23,20 23,20 @@
 */
void init_fallacy_leds(void) {
    i2c_init();
    is31fl3731_init(LED_DRIVER_ADDR_1);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);

    for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) {
        is31fl3731_set_led_control_register(i, true);
    }

    is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
}


/* update the buffer
 */
void update_fallacy_leds(void) {
    is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);    
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);    
}



M keyboards/feker/ik75/config.h => keyboards/feker/ik75/config.h +2 -2
@@ 25,8 25,8 @@
    #define RGB_MATRIX_FRAMEBUFFER_EFFECTS

    /* RGB Matrix config */
    #define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_VCC_VCC
    #define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_GND
    #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_VCC_VCC
    #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND
    #define IS31FL3733_DRIVER_COUNT 2
    #define DRIVER_1_LED_TOTAL 63
    #define DRIVER_2_LED_TOTAL 64

M keyboards/ferris/0_2/bling/config.h => keyboards/ferris/0_2/bling/config.h +2 -2
@@ 18,8 18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

/* LED Drivers */
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 7
#define DRIVER_2_LED_TOTAL 7

M keyboards/flashquark/horizon_z/config.h => keyboards/flashquark/horizon_z/config.h +1 -1
@@ 72,7 72,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 62
#endif

M keyboards/frooastboard/walnut/config.h => keyboards/frooastboard/walnut/config.h +1 -1
@@ 6,7 6,7 @@
#define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ
#define IS31FL3737_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 48
#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND
#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND

#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 191


M keyboards/geekboards/tester/config.h => keyboards/geekboards/tester/config.h +2 -2
@@ 55,8 55,8 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 8
#    define DRIVER_2_LED_TOTAL 0

M keyboards/gizmo_engineering/gk6/config.h => keyboards/gizmo_engineering/gk6/config.h +2 -2
@@ 18,8 18,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

// RGB Matrix
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC

#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 32

M keyboards/gmmk/gmmk2/p65/config.h => keyboards/gmmk/gmmk2/p65/config.h +4 -4
@@ 29,10 29,10 @@
#define SPI_MOSI_PIN B15
#define SPI_MISO_PIN B14

#define AW20216S_DRIVER_1_CS A15
#define AW20216S_DRIVER_2_CS B9
#define AW20216S_DRIVER_1_EN C13
#define AW20216S_DRIVER_2_EN C13
#define AW20216S_CS_PIN_1 A15
#define AW20216S_CS_PIN_2 B9
#define AW20216S_EN_PIN_1 C13
#define AW20216S_EN_PIN_2 C13

#define AW20216S_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 54

M keyboards/gmmk/gmmk2/p96/config.h => keyboards/gmmk/gmmk2/p96/config.h +4 -4
@@ 32,10 32,10 @@
#define SPI_MOSI_PIN A7
#define SPI_MISO_PIN A6

#define AW20216S_DRIVER_1_CS A15
#define AW20216S_DRIVER_2_CS B15
#define AW20216S_DRIVER_1_EN C13
#define AW20216S_DRIVER_2_EN C13
#define AW20216S_CS_PIN_1 A15
#define AW20216S_CS_PIN_2 B15
#define AW20216S_EN_PIN_1 C13
#define AW20216S_EN_PIN_2 C13

#define AW20216S_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66

M keyboards/gmmk/numpad/config.h => keyboards/gmmk/numpad/config.h +3 -3
@@ 28,9 28,9 @@
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4

#define AW20216S_DRIVER_1_CS B12
#define AW20216S_DRIVER_1_EN A15
#define AW20216S_DRIVER_1_PW_EN B13
#define AW20216S_CS_PIN_1 B12
#define AW20216S_EN_PIN_1 A15
#define AW20216S_PW_EN_PIN_1 B13

#define AW20216S_DRIVER_COUNT 1


M keyboards/gmmk/numpad/numpad.c => keyboards/gmmk/numpad/numpad.c +3 -3
@@ 107,12 107,12 @@ led_config_t g_led_config = {{
	2, 2, 2, 2, 2, 2, 2
} };

#    ifdef AW20216S_DRIVER_1_PW_EN
#    ifdef AW20216S_PW_EN_PIN_1

void keyboard_pre_init_user(void) {
    wait_ms(2000);
    setPinOutput(AW20216S_DRIVER_1_PW_EN);
    writePinHigh(AW20216S_DRIVER_1_PW_EN);
    setPinOutput(AW20216S_PW_EN_PIN_1);
    writePinHigh(AW20216S_PW_EN_PIN_1);
}
#    endif


M keyboards/gmmk/pro/config.h => keyboards/gmmk/pro/config.h +4 -4
@@ 26,10 26,10 @@
#define SPI_MOSI_PIN A6
#define SPI_MISO_PIN A7

#define AW20216S_DRIVER_1_CS B13
#define AW20216S_DRIVER_2_CS B14
#define AW20216S_DRIVER_1_EN C13
#define AW20216S_DRIVER_2_EN C13
#define AW20216S_CS_PIN_1 B13
#define AW20216S_CS_PIN_2 B14
#define AW20216S_EN_PIN_1 C13
#define AW20216S_EN_PIN_2 C13

#define AW20216S_DRIVER_COUNT 2


M keyboards/handwired/orbweaver/config.h => keyboards/handwired/orbweaver/config.h +1 -1
@@ 18,7 18,7 @@
#pragma once

#define IS31FL3731_DRIVER_COUNT 1
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 20
#define I2C1_CLOCK_SPEED 100000
#define RGB_MATRIX_CENTER { 40, 30 }

M keyboards/hs60/v1/config.h => keyboards/hs60/v1/config.h +2 -2
@@ 41,8 41,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215

#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL

#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30

M keyboards/ilumkb/simpler61/config.h => keyboards/ilumkb/simpler61/config.h +1 -1
@@ 21,7 21,7 @@
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 61
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/ilumkb/simpler64/config.h => keyboards/ilumkb/simpler64/config.h +1 -1
@@ 21,7 21,7 @@
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 64
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/inett_studio/sqx/hotswap/config.h => keyboards/inett_studio/sqx/hotswap/config.h +2 -2
@@ 32,8 32,8 @@
//rgb matrix setting
#define DRIVER_1_LED_TOTAL 33
#define DRIVER_2_LED_TOTAL 31
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)


M keyboards/inett_studio/sqx/universal/config.h => keyboards/inett_studio/sqx/universal/config.h +2 -2
@@ 32,8 32,8 @@
//rgb matrix setting
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)


M keyboards/inland/kb83/config.h => keyboards/inland/kb83/config.h +2 -2
@@ 39,8 39,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SDA_PIN B7
#define I2C1_SCL_PIN B6
#define I2C1_SCL_PAL_MODE 4

M keyboards/inland/mk47/config.h => keyboards/inland/mk47/config.h +1 -1
@@ 26,7 26,7 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* WB32 MCU has no default definition */
#define I2C1_OPMODE OPMODE_I2C

M keyboards/input_club/ergodox_infinity/config.h => keyboards/input_club/ergodox_infinity/config.h +1 -1
@@ 43,7 43,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define LED_BRIGHTNESS_HI       255

/* LED matrix driver */
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 76
#define LED_MATRIX_SPLIT { 38, 38 }

M keyboards/input_club/infinity60/led/config.h => keyboards/input_club/infinity60/led/config.h +1 -1
@@ 6,7 6,7 @@
#define LED_MATRIX_LED_COUNT 63

#define IS31FL3731_DRIVER_COUNT 1
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND

#define I2C1_CLOCK_SPEED 400000
#define I2C1_SCL_PIN B0

M keyboards/input_club/k_type/config.h => keyboards/input_club/k_type/config.h +2 -2
@@ 103,8 103,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
#    define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 64
#    define DRIVER_2_LED_TOTAL 55

M keyboards/input_club/k_type/k_type-rgbdriver.c => keyboards/input_club/k_type/k_type-rgbdriver.c +6 -6
@@ 22,26 22,26 @@

static void init(void) {
    i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN);
    is31fl3733_init(0, DRIVER_ADDR_1, 0);
    is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, 0);
#    ifdef USE_I2C2
    i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN);
    is31fl3733_init(1, DRIVER_ADDR_2, 0);
    is31fl3733_init(1, IS31FL3733_I2C_ADDRESS_2, 0);
#    endif
    for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
        bool enabled = true;
        // This only caches it for later
        is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
#    ifdef USE_I2C2
    is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1);
#    endif
}

static void flush(void) {
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
#    ifdef USE_I2C2
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1);
#    endif
}


M keyboards/input_club/whitefox/config.h => keyboards/input_club/whitefox/config.h +1 -1
@@ 21,7 21,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#define LED_BRIGHTNESS_HI 255

/* LED matrix driver */
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 71
#define LED_DISABLE_WHEN_USB_SUSPENDED

M keyboards/kbdcraft/adam64/config.h => keyboards/kbdcraft/adam64/config.h +1 -1
@@ 24,7 24,7 @@
#define I2C1_DUTY_CYCLE	FAST_DUTY_CYCLE_16_9

#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 64

/* turn off effects when suspended */

M keyboards/kbdfans/bella/rgb/config.h => keyboards/kbdfans/bella/rgb/config.h +1 -1
@@ 71,7 71,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 108
#define DRIVER_INDICATOR_LED_TOTAL 0

M keyboards/kbdfans/bella/rgb_iso/config.h => keyboards/kbdfans/bella/rgb_iso/config.h +1 -1
@@ 71,7 71,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 109
#define DRIVER_INDICATOR_LED_TOTAL 0

M keyboards/kbdfans/boop65/rgb/config.h => keyboards/kbdfans/boop65/rgb/config.h +1 -1
@@ 26,7 26,7 @@
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
#    define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#    define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#    define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 83
#    define DRIVER_INDICATOR_LED_TOTAL 0

M keyboards/kbdfans/kbd67/mkiirgb/v1/config.h => keyboards/kbdfans/kbd67/mkiirgb/v1/config.h +2 -2
@@ 55,8 55,8 @@

#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 35
#define DRIVER_2_LED_TOTAL 32

M keyboards/kbdfans/kbd67/mkiirgb/v2/config.h => keyboards/kbdfans/kbd67/mkiirgb/v2/config.h +2 -2
@@ 55,8 55,8 @@
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 35
#    define DRIVER_2_LED_TOTAL 32

M keyboards/kbdfans/kbd67/mkiirgb/v3/config.h => keyboards/kbdfans/kbd67/mkiirgb/v3/config.h +1 -1
@@ 72,7 72,7 @@
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 67
#define DRIVER_INDICATOR_LED_TOTAL 0

M keyboards/kbdfans/kbdmini/config.h => keyboards/kbdfans/kbdmini/config.h +1 -1
@@ 53,7 53,7 @@
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 52
#endif

M keyboards/kbdfans/maja/config.h => keyboards/kbdfans/maja/config.h +2 -2
@@ 54,8 54,8 @@
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 31

M keyboards/keychron/c1_pro/ansi/rgb/config.h => keyboards/keychron/c1_pro/ansi/rgb/config.h +2 -2
@@ 21,8 21,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* RGB Matrix Configuration */
#define DRIVER_1_LED_TOTAL 49

M keyboards/keychron/c1_pro/ansi/white/config.h => keyboards/keychron/c1_pro/ansi/white/config.h +1 -1
@@ 21,7 21,7 @@

/* LED Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* LED Matrix Configuration */
#define LED_MATRIX_LED_COUNT 90

M keyboards/keychron/c2_pro/ansi/rgb/config.h => keyboards/keychron/c2_pro/ansi/rgb/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Set LED driver current */
#define SNLED27351_CURRENT_TUNE \

M keyboards/keychron/c2_pro/ansi/white/config.h => keyboards/keychron/c2_pro/ansi/white/config.h +1 -1
@@ 18,7 18,7 @@

/* LED Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* Set LED driver current */
#define SNLED27351_CURRENT_TUNE \

M keyboards/keychron/q0/base/config.h => keyboards/keychron/q0/base/config.h +1 -1
@@ 18,7 18,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* RGB Matrix Configuration */
#define RGB_MATRIX_LED_COUNT 21

M keyboards/keychron/q0/plus/config.h => keyboards/keychron/q0/plus/config.h +1 -1
@@ 18,7 18,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO

/* RGB Matrix Configuration */
#define RGB_MATRIX_LED_COUNT 26

M keyboards/keychron/q10/config.h => keyboards/keychron/q10/config.h +2 -2
@@ 31,8 31,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q11/config.h => keyboards/keychron/q11/config.h +1 -1
@@ 28,7 28,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q12/config.h => keyboards/keychron/q12/config.h +2 -2
@@ 27,8 27,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q1v1/config.h => keyboards/keychron/q1v1/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define IS31FL3733_DRIVER_COUNT 2
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC

/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID  { {0,1} }

M keyboards/keychron/q1v2/ansi/ansi.c => keyboards/keychron/q1v2/ansi/ansi.c +2 -2
@@ 18,8 18,8 @@

#ifdef RGB_MATRIX_ENABLE

const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
 *   driver
 *   |  R location
 *   |  |       G location

M keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c => keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c +2 -2
@@ 18,8 18,8 @@

#ifdef RGB_MATRIX_ENABLE

const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
 *   driver
 *   |  R location
 *   |  |       G location

M keyboards/keychron/q1v2/config.h => keyboards/keychron/q1v2/config.h +5 -6
@@ 17,9 17,9 @@
#pragma once

/* RGB Matrix Driver Configuration */
#define DRIVER_COUNT 2
#define DRIVER_ADDR_1 0b1110111
#define DRIVER_ADDR_2 0b1110100
#define SNLED27351_DRIVER_COUNT 2
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U


@@ 44,10 44,9 @@
#define WEAR_LEVELING_LOGICAL_SIZE 2048
#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)

/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
#define PHASE_CHANNEL MSKPHASE_9CHANNEL
#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL
/* Set LED driver current */
#define CKLED2001_CURRENT_TUNE \
#define SNLED27351_CURRENT_TUNE \
    { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }

// RGB Matrix Animation modes. Explicitly enabled

M keyboards/keychron/q1v2/info.json => keyboards/keychron/q1v2/info.json +1 -1
@@ 30,7 30,7 @@
    },
    "diode_direction": "ROW2COL",
    "rgb_matrix": {
        "driver": "ckled2001",
        "driver": "snled27351",
        "animations": {
            "band_spiral_val": true,
            "breathing": true,

M keyboards/keychron/q1v2/iso/iso.c => keyboards/keychron/q1v2/iso/iso.c +2 -2
@@ 18,8 18,8 @@

#ifdef RGB_MATRIX_ENABLE

const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
 *   driver
 *   |  R location
 *   |  |       G location

M keyboards/keychron/q1v2/iso_encoder/iso_encoder.c => keyboards/keychron/q1v2/iso_encoder/iso_encoder.c +2 -2
@@ 18,8 18,8 @@

#ifdef RGB_MATRIX_ENABLE

const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
 *   driver
 *   |  R location
 *   |  |       G location

M keyboards/keychron/q1v2/jis/jis.c => keyboards/keychron/q1v2/jis/jis.c +2 -2
@@ 18,8 18,8 @@

#ifdef RGB_MATRIX_ENABLE

const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
 *   driver
 *   |  R location
 *   |  |       G location

M keyboards/keychron/q1v2/jis_encoder/jis_encoder.c => keyboards/keychron/q1v2/jis_encoder/jis_encoder.c +2 -2
@@ 18,8 18,8 @@

#ifdef RGB_MATRIX_ENABLE

const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to CKLED2001 manual for these locations
const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to SNLED27351 manual for these locations
 *   driver
 *   |  R location
 *   |  |       G location

M keyboards/keychron/q2/config.h => keyboards/keychron/q2/config.h +2 -2
@@ 23,8 23,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL


M keyboards/keychron/q3/config.h => keyboards/keychron/q3/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q4/ansi/v1/config.h => keyboards/keychron/q4/ansi/v1/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* RGB Matrix Configuration */
#define RGB_MATRIX_LED_COUNT 61

M keyboards/keychron/q4/ansi/v2/config.h => keyboards/keychron/q4/ansi/v2/config.h +1 -1
@@ 18,7 18,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* RGB Matrix Configuration */
#define RGB_MATRIX_LED_COUNT 61

M keyboards/keychron/q4/iso/config.h => keyboards/keychron/q4/iso/config.h +1 -1
@@ 18,7 18,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* RGB Matrix Configuration */
#define RGB_MATRIX_LED_COUNT 62

M keyboards/keychron/q5/config.h => keyboards/keychron/q5/config.h +2 -2
@@ 31,8 31,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

#define SNLED27351_CURRENT_TUNE \
    { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 }

M keyboards/keychron/q6/config.h => keyboards/keychron/q6/config.h +2 -2
@@ 25,8 25,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

#define SNLED27351_CURRENT_TUNE \
    { 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 }

M keyboards/keychron/q60/config.h => keyboards/keychron/q60/config.h +1 -1
@@ 18,7 18,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q65/config.h => keyboards/keychron/q65/config.h +2 -2
@@ 27,8 27,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q7/config.h => keyboards/keychron/q7/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q8/config.h => keyboards/keychron/q8/config.h +2 -2
@@ 21,8 21,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q9/config.h => keyboards/keychron/q9/config.h +1 -1
@@ 24,7 24,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/q9_plus/config.h => keyboards/keychron/q9_plus/config.h +1 -1
@@ 24,7 24,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/s1/ansi/rgb/config.h => keyboards/keychron/s1/ansi/rgb/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 46
#define DRIVER_2_LED_TOTAL 38
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

M keyboards/keychron/s1/ansi/white/config.h => keyboards/keychron/s1/ansi/white/config.h +1 -1
@@ 18,7 18,7 @@

/* LED Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 84
#define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL


M keyboards/keychron/v1/config.h => keyboards/keychron/v1/config.h +2 -2
@@ 33,8 33,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v10/config.h => keyboards/keychron/v10/config.h +2 -2
@@ 32,8 32,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v2/config.h => keyboards/keychron/v2/config.h +2 -2
@@ 21,8 21,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v3/config.h => keyboards/keychron/v3/config.h +2 -2
@@ 21,8 21,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v4/config.h => keyboards/keychron/v4/config.h +1 -1
@@ 18,7 18,7 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 1
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v5/config.h => keyboards/keychron/v5/config.h +2 -2
@@ 27,8 27,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v6/config.h => keyboards/keychron/v6/config.h +2 -2
@@ 21,8 21,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v7/config.h => keyboards/keychron/v7/config.h +2 -2
@@ 18,8 18,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/keychron/v8/config.h => keyboards/keychron/v8/config.h +2 -2
@@ 21,8 21,8 @@

/* RGB Matrix Driver Configuration */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND

/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U

M keyboards/kprepublic/bm40hsrgb/rev2/config.h => keyboards/kprepublic/bm40hsrgb/rev2/config.h +2 -2
@@ 15,8 15,8 @@
 */
#pragma once

#define DRIVER_COUNT 1
#define DRIVER_ADDR_1 0b1010000
#define IS31FL3733_DRIVER_COUNT 1
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_LED_COUNT 47
#define RGB_MATRIX_KEYPRESSES
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended

M keyboards/kprepublic/bm60hsrgb/rev2/config.h => keyboards/kprepublic/bm60hsrgb/rev2/config.h +1 -1
@@ 18,7 18,7 @@
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD

#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND

#define RGB_MATRIX_KEYPRESSES
// RGB Matrix Animation modes. Explicitly enabled

M keyboards/kprepublic/bm60hsrgb/rev2/rev2.c => keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +3 -3
@@ 153,16 153,16 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];

static void rgb_matrix_driver_init(void) {
    i2c_init();
    is31fl3733_init(DRIVER_ADDR_1, 0);
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0);
    for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
        bool enabled = true;
        is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
}

static void rgb_matrix_driver_flush(void) {
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
#    if WS2812_LED_TOTAL > 0
    ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
#    endif

M keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h => keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h +1 -1
@@ 18,7 18,7 @@
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD

#    define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 63
#    define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h => keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +1 -1
@@ 26,7 26,7 @@
#    define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#    define DISABLE_RGB_MATRIX_RAINDROPS
#    define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define DRIVER_1_LED_TOTAL 64


M keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c => keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +3 -3
@@ 153,16 153,16 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];

static void rgb_matrix_driver_init(void) {
    i2c_init();
    is31fl3733_init(DRIVER_ADDR_1, 0);
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0);
    for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
        bool enabled = true;
        is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
}

static void rgb_matrix_driver_flush(void) {
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
#    if WS2812_LED_TOTAL > 0
    ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
#    endif

M keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h => keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +1 -1
@@ 78,7 78,7 @@

// Configure the IS31FL3733 driver for per-key RGB LEDs
#define IS31FL3733_DRIVER_COUNT 1
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_1_LED_TOTAL 61

#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL

M keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c => keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +3 -3
@@ 149,16 149,16 @@ rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];

static void rgb_matrix_driver_init(void) {
    i2c_init();
    is31fl3733_init(DRIVER_ADDR_1, 0);
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, 0);
    for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
        bool enabled = true;
        is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
}

static void rgb_matrix_driver_flush(void) {
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
#    if WS2812_LED_TOTAL > 0
    ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
#    endif

M keyboards/kprepublic/bm68hsrgb/rev2/config.h => keyboards/kprepublic/bm68hsrgb/rev2/config.h +1 -1
@@ 18,7 18,7 @@

#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD

#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND

#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 68

M keyboards/kprepublic/bm80v2/config.h => keyboards/kprepublic/bm80v2/config.h +1 -1
@@ 53,7 53,7 @@
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 87
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/kprepublic/bm80v2_iso/config.h => keyboards/kprepublic/bm80v2_iso/config.h +1 -1
@@ 54,7 54,7 @@
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 88
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/latincompass/latin17rgb/config.h => keyboards/latincompass/latin17rgb/config.h +2 -2
@@ 69,8 69,8 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA

#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 25

M keyboards/latincompass/latin60rgb/config.h => keyboards/latincompass/latin60rgb/config.h +1 -1
@@ 67,7 67,7 @@
// #    define ENABLE_RGB_MATRIX_MULTISPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 60
#endif

M keyboards/latincompass/latin6rgb/config.h => keyboards/latincompass/latin6rgb/config.h +1 -1
@@ 70,7 70,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND

#define IS31FL3731_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 6

M keyboards/matrix/m20add/config.h => keyboards/matrix/m20add/config.h +1 -1
@@ 78,6 78,6 @@
#define I2C1_CLOCK_SPEED 400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2

#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 20

M keyboards/matrix/m20add/rgb_ring.c => keyboards/matrix/m20add/rgb_ring.c +3 -3
@@ 372,12 372,12 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
void rgb_ring_init(void)
{
    i2c_init();
    is31fl3731_init(DRIVER_ADDR_1);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
    for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
        bool enabled = true;
        is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
}

void rgb_ring_task(void)


@@ 396,7 396,7 @@ void rgb_ring_task(void)
            break;
    };

    is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
}

bool process_record_kb(uint16_t keycode, keyrecord_t *record)

M keyboards/matrix/noah/config.h => keyboards/matrix/noah/config.h +2 -2
@@ 19,8 19,8 @@
#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)

// rgb matrix setting
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36

M keyboards/mechlovin/adelais/rgb_led/rev2/config.h => keyboards/mechlovin/adelais/rgb_led/rev2/config.h +2 -2
@@ 1,8 1,8 @@
#pragma once

//rgb matrix setting
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 36

M keyboards/mechlovin/adelais/rgb_led/rev3/config.h => keyboards/mechlovin/adelais/rgb_led/rev3/config.h +1 -1
@@ 22,7 22,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#ifdef RGB_MATRIX_ENABLE
//rgb matrix setting
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_SDA
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA
#define IS31FL3741_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 66


M keyboards/mechlovin/delphine/rgb_led/config.h => keyboards/mechlovin/delphine/rgb_led/config.h +1 -1
@@ 1,7 1,7 @@
#pragma once

//rgb matrix setting
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 25
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses

M keyboards/mechlovin/hannah60rgb/rev2/config.h => keyboards/mechlovin/hannah60rgb/rev2/config.h +2 -2
@@ 1,8 1,8 @@
#pragma once

//rgb matrix setting
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 44
#define DRIVER_2_LED_TOTAL 34

M keyboards/mechlovin/infinity87/rgb_rev1/config.h => keyboards/mechlovin/infinity87/rgb_rev1/config.h +1 -1
@@ 73,7 73,7 @@
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_SDA
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA
#define IS31FL3741_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 91
#define DRIVER_INDICATOR_LED_TOTAL 0

M keyboards/mechlovin/olly/octagon/config.h => keyboards/mechlovin/olly/octagon/config.h +1 -1
@@ 18,7 18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

#ifdef LED_MATRIX_ENABLE
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA
#define I2C_DRIVER I2CD2
#define I2C1_SCL_PIN B10
#define I2C1_SDA_PIN B11

M keyboards/mechlovin/zed65/mono_led/config.h => keyboards/mechlovin/zed65/mono_led/config.h +1 -1
@@ 18,7 18,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#pragma once

#ifdef LED_MATRIX_ENABLE
#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA
#define I2C_DRIVER I2CD2
#define I2C1_SCL_PIN B10
#define I2C1_SDA_PIN B11

M keyboards/melgeek/mach80/config.h => keyboards/melgeek/mach80/config.h +1 -1
@@ 25,7 25,7 @@
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

#define ENABLE_RGB_MATRIX_ALPHAS_MODS

M keyboards/melgeek/mach80/rev1/rev1.c => keyboards/melgeek/mach80/rev1/rev1.c +1 -1
@@ 179,7 179,7 @@ void matrix_init_kb(void) {
        is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
    }

    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);

    matrix_init_user();
}

M keyboards/melgeek/mach80/rev2/rev2.c => keyboards/melgeek/mach80/rev2/rev2.c +1 -1
@@ 177,7 177,7 @@ void matrix_init_kb(void) {
        is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
    }

    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);

    matrix_init_user();
}

M keyboards/melgeek/mj61/config.h => keyboards/melgeek/mj61/config.h +1 -1
@@ 70,5 70,5 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

M keyboards/melgeek/mj63/config.h => keyboards/melgeek/mj63/config.h +1 -1
@@ 70,5 70,5 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

M keyboards/melgeek/mj64/config.h => keyboards/melgeek/mj64/config.h +1 -1
@@ 70,5 70,5 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

M keyboards/melgeek/mj65/config.h => keyboards/melgeek/mj65/config.h +1 -1
@@ 70,5 70,5 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

M keyboards/melgeek/mojo68/config.h => keyboards/melgeek/mojo68/config.h +1 -1
@@ 69,5 69,5 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

M keyboards/melgeek/mojo68/rev1/rev1.c => keyboards/melgeek/mojo68/rev1/rev1.c +1 -1
@@ 147,7 147,7 @@ void matrix_init_kb(void) {
        is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
    }

    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);

    matrix_init_user();
}

M keyboards/melgeek/mojo75/config.h => keyboards/melgeek/mojo75/config.h +1 -1
@@ 71,5 71,5 @@
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

M keyboards/melgeek/tegic/config.h => keyboards/melgeek/tegic/config.h +1 -1
@@ 22,7 22,7 @@
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1

#define ENABLE_RGB_MATRIX_ALPHAS_MODS

M keyboards/melgeek/z70ultra/config.h => keyboards/melgeek/z70ultra/config.h +1 -1
@@ 70,7 70,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 69
#define DRIVER_INDICATOR_LED_TOTAL 6

M keyboards/melgeek/z70ultra/z70ultra.c => keyboards/melgeek/z70ultra/z70ultra.c +1 -1
@@ 161,7 161,7 @@ void matrix_init_kb(void) {
        is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
    }

    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);

    matrix_init_user();
}

M keyboards/miller/gm862/config.h => keyboards/miller/gm862/config.h +1 -1
@@ 53,7 53,7 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#    define IS31FL3733_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 62
#endif

M keyboards/monsgeek/m1/config.h => keyboards/monsgeek/m1/config.h +2 -2
@@ 34,8 34,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */


M keyboards/monsgeek/m5/config.h => keyboards/monsgeek/m5/config.h +2 -2
@@ 35,8 35,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
#define I2C1_SCL_PAL_MODE 4

M keyboards/monsgeek/m6/config.h => keyboards/monsgeek/m6/config.h +2 -2
@@ 32,8 32,8 @@

/* I2C Config for LED Driver */
#define SNLED27351_DRIVER_COUNT 2
#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */

M keyboards/moonlander/config.h => keyboards/moonlander/config.h +2 -2
@@ 65,8 65,8 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC

#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36

M keyboards/mt/mt64rgb/config.h => keyboards/mt/mt64rgb/config.h +1 -1
@@ 22,7 22,7 @@
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
#define RGB_MATRIX_LED_PROCESS_LIMIT 20
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND

#define IS31FL3733_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 64

M keyboards/mt/mt84/config.h => keyboards/mt/mt84/config.h +2 -2
@@ 22,8 22,8 @@
    #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
	#define RGB_MATRIX_LED_PROCESS_LIMIT 20
	#define RGB_MATRIX_LED_FLUSH_LIMIT 26
	#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND
	#define DRIVER_ADDR_2 IS31FL3737_I2C_ADDRESS_VCC
	#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
	#define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC




M keyboards/neson_design/700e/700e.c => keyboards/neson_design/700e/700e.c +12 -12
@@ 48,18 48,18 @@ enum {

// led index
#define ST_LEFT_BEGIN       0
#ifdef DRIVER_ADDR_2
#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_LEFT_SIZE        4
#else
#define ST_LEFT_SIZE        2
#endif
#define ST_LEFT_END         (ST_LEFT_BEGIN+ST_LEFT_SIZE-1)
#ifdef DRIVER_ADDR_2
#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_BEGIN      60
#else
#define ST_RIGHT_BEGIN      30
#endif
#ifdef DRIVER_ADDR_2
#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_SIZE       4
#else
#define ST_RIGHT_SIZE       2


@@ 295,16 295,16 @@ void matrix_init_kb(void)
    writePinLow(LED_CAPS_LOCK_PIN);

    i2c_init();
    is31fl3731_init(DRIVER_ADDR_1);
#ifdef DRIVER_ADDR_2
    is31fl3731_init(DRIVER_ADDR_2);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
#ifdef IS31FL3731_I2C_ADDRESS_2
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
#endif
    for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
        is31fl3731_set_led_control_register(index, true, true, true);
    }
    is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
#ifdef DRIVER_ADDR_2
    is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
#ifdef IS31FL3731_I2C_ADDRESS_2
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
#endif
    update_ticks();
    matrix_init_user();


@@ 341,9 341,9 @@ void housekeeping_task_kb(void)
        }
    }

    is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
#ifdef DRIVER_ADDR_2
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
#ifdef IS31FL3731_I2C_ADDRESS_2
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
#endif

    housekeeping_task_user();

M keyboards/neson_design/700e/config.h => keyboards/neson_design/700e/config.h +2 -2
@@ 32,8 32,8 @@

#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)


M keyboards/neson_design/n6/config.h => keyboards/neson_design/n6/config.h +2 -2
@@ 32,7 32,7 @@

#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define IS31FL3731_DRIVER_COUNT 2
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)

M keyboards/neson_design/n6/n6.c => keyboards/neson_design/n6/n6.c +12 -12
@@ 48,18 48,18 @@ enum {

// led index
#define ST_LEFT_BEGIN       0
#ifdef DRIVER_ADDR_2
#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_LEFT_SIZE        4
#else
#define ST_LEFT_SIZE        2
#endif
#define ST_LEFT_END         (ST_LEFT_BEGIN+ST_LEFT_SIZE-1)
#ifdef DRIVER_ADDR_2
#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_BEGIN      60
#else
#define ST_RIGHT_BEGIN      30
#endif
#ifdef DRIVER_ADDR_2
#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_SIZE       4
#else
#define ST_RIGHT_SIZE       2


@@ 299,16 299,16 @@ void matrix_init_kb(void)
    writePinLow(LED_CAPS_LOCK_PIN);

    i2c_init();
    is31fl3731_init(DRIVER_ADDR_1);
#ifdef DRIVER_ADDR_2
    is31fl3731_init(DRIVER_ADDR_2);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
#ifdef IS31FL3731_I2C_ADDRESS_2
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
#endif
    for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
        is31fl3731_set_led_control_register(index, true, true, true);
    }
    is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
#ifdef DRIVER_ADDR_2
    is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
#ifdef IS31FL3731_I2C_ADDRESS_2
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
#endif
    update_ticks();
    matrix_init_user();


@@ 343,9 343,9 @@ void housekeeping_task_kb(void)
        }
    }

    is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
#ifdef DRIVER_ADDR_2
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
#ifdef IS31FL3731_I2C_ADDRESS_2
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
#endif

    housekeeping_task_user();

M keyboards/opendeck/32/rev1/config.h => keyboards/opendeck/32/rev1/config.h +1 -1
@@ 16,7 16,7 @@
#pragma once

// RGB matrix
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT (4 * 8 * 3)
#define RGB_DISABLE_WHEN_USB_SUSPENDED

M keyboards/owlab/voice65/hotswap/config.h => keyboards/owlab/voice65/hotswap/config.h +1 -1
@@ 29,7 29,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define RGB_MATRIX_LED_FLUSH_LIMIT    26
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#    define RGB_MATRIX_DEFAULT_VAL        128
#    define DRIVER_ADDR_1                 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_I2C_ADDRESS_1                 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_DRIVER_COUNT                  1
#    define RGB_MATRIX_LED_COUNT              67
// RGB Matrix Animation modes. Explicitly enabled

M keyboards/owlab/voice65/soldered/config.h => keyboards/owlab/voice65/soldered/config.h +1 -1
@@ 29,7 29,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    define RGB_MATRIX_LED_FLUSH_LIMIT    26
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#    define RGB_MATRIX_DEFAULT_VAL        128
#    define DRIVER_ADDR_1                 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_I2C_ADDRESS_1                 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_DRIVER_COUNT                  1
#    define RGB_MATRIX_LED_COUNT              71


M keyboards/planck/ez/config.h => keyboards/planck/ez/config.h +1 -1
@@ 50,7 50,7 @@
//#define WS2812_DMA_CHANNEL 7                  // DMA channel for TIMx_UP
//#define WS2812_EXTERNAL_PULLUP

#define DRIVER_ADDR_1 IS31FL3737_I2C_ADDRESS_GND
#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND

#define IS31FL3737_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 47

M keyboards/planck/light/config.h => keyboards/planck/light/config.h +2 -2
@@ 7,8 7,8 @@

#define PLANCK_MIT_LAYOUT

#define DRIVER_ADDR_1      IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2      IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1      IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2      IS31FL3731_I2C_ADDRESS_SDA

#define IS31FL3731_DRIVER_COUNT       2
#define DRIVER_1_LED_TOTAL 25

M keyboards/playkbtw/pk64rgb/config.h => keyboards/playkbtw/pk64rgb/config.h +1 -1
@@ 23,7 23,7 @@
	#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
	#define RGB_MATRIX_LED_PROCESS_LIMIT 20
	#define RGB_MATRIX_LED_FLUSH_LIMIT 26
	#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
	#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
    #define IS31FL3733_DRIVER_COUNT 1
	#define RGB_MATRIX_LED_COUNT 64


M keyboards/projectd/65/projectd_65_ansi/config.h => keyboards/projectd/65/projectd_65_ansi/config.h +4 -4
@@ 32,10 32,10 @@
#define SPI_MOSI_PIN A7
#define SPI_MISO_PIN A6

#define AW20216S_DRIVER_1_CS A15
#define AW20216S_DRIVER_2_CS B15
#define AW20216S_DRIVER_1_EN C13
#define AW20216S_DRIVER_2_EN C13
#define AW20216S_CS_PIN_1 A15
#define AW20216S_CS_PIN_2 B15
#define AW20216S_EN_PIN_1 C13
#define AW20216S_EN_PIN_2 C13

#define AW20216S_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 71

M keyboards/redragon/k667/config.h => keyboards/redragon/k667/config.h +2 -2
@@ 17,8 17,8 @@
#pragma once


#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC

#define IS31FL3733_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 45

M keyboards/skyloong/gk61/v1/config.h => keyboards/skyloong/gk61/v1/config.h +1 -1
@@ 15,7 15,7 @@
 */
#pragma once

#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND

#define SNLED27351_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 64

M keyboards/smallkeyboard/config.h => keyboards/smallkeyboard/config.h +1 -1
@@ 66,7 66,7 @@
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND

#define IS31FL3731_DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 6

M keyboards/teleport/native/config.h => keyboards/teleport/native/config.h +2 -2
@@ 30,8 30,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* RGB Matrix driver config */
#define IS31FL3733_DRIVER_COUNT 2
#define DRIVER_ADDR_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_ADDR_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define DRIVER_1_LED_TOTAL 46
#define DRIVER_2_LED_TOTAL 39
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

M keyboards/terrazzo/config.h => keyboards/terrazzo/config.h +1 -1
@@ 17,7 17,7 @@

#ifdef LED_MATRIX_ENABLE

#define LED_DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 105
#define LED_MATRIX_ROWS 15

M keyboards/tkc/portico/config.h => keyboards/tkc/portico/config.h +2 -2
@@ 39,8 39,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#    undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 36
#    define DRIVER_2_LED_TOTAL 31

M keyboards/tkc/portico68v2/config.h => keyboards/tkc/portico68v2/config.h +1 -1
@@ 17,7 17,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#pragma once

#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 82
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/tkc/portico75/config.h => keyboards/tkc/portico75/config.h +1 -1
@@ 72,7 72,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#    define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#    define IS31FL3741_DRIVER_COUNT 1
#    define DRIVER_1_LED_TOTAL 98
#    define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL

M keyboards/wilba_tech/wt60_a/config.h => keyboards/wilba_tech/wt60_a/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt65_a/config.h => keyboards/wilba_tech/wt65_a/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt65_b/config.h => keyboards/wilba_tech/wt65_b/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt75_a/config.h => keyboards/wilba_tech/wt75_a/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt75_b/config.h => keyboards/wilba_tech/wt75_b/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt75_c/config.h => keyboards/wilba_tech/wt75_c/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt80_a/config.h => keyboards/wilba_tech/wt80_a/config.h +1 -0
@@ 62,5 62,6 @@
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7

#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
#define IS31FL3736_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 96

M keyboards/wilba_tech/wt_mono_backlight.c => keyboards/wilba_tech/wt_mono_backlight.c +8 -10
@@ 35,8 35,6 @@

#include "drivers/led/issi/is31fl3736-simple.h"

#define ISSI_ADDR_DEFAULT 0x50

#define BACKLIGHT_EFFECT_MAX 3

#ifndef MONO_BACKLIGHT_COLOR_1


@@ 172,14 170,14 @@ uint32_t g_any_key_hit = 0;

void backlight_init_drivers(void)
{
	// Initialize I2C
	i2c_init();
	is31fl3736_init( ISSI_ADDR_DEFAULT );
    // Initialize I2C
    i2c_init();
    is31fl3736_init( IS31FL3736_I2C_ADDRESS_1 );

	for ( uint8_t index = 0; index < 96; index++ )	{
		is31fl3736_set_led_control_register( index, true );
	}
	is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0 );
    for ( uint8_t index = 0; index < 96; index++ )  {
        is31fl3736_set_led_control_register( index, true );
    }
    is31fl3736_update_led_control_registers( IS31FL3736_I2C_ADDRESS_1, 0 );
}

void backlight_set_key_hit(uint8_t row, uint8_t column)


@@ 471,7 469,7 @@ void backlight_config_save(void)

void backlight_update_pwm_buffers(void)
{
	is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT, 0);
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0);
}

bool process_record_backlight(uint16_t keycode, keyrecord_t *record)

M keyboards/xbows/knight/config.h => keyboards/xbows/knight/config.h +3 -3
@@ 47,9 47,9 @@
#    define ENABLE_RGB_MATRIX_SPLASH                  // Full gradient & value pulse away from a single key hit then fades value out
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH       // Hue & value pulse away from multiple key hits then fades value out

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#    define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_DRIVER_COUNT 3
#    define DRIVER_1_LED_TOTAL 36
#    define DRIVER_2_LED_TOTAL 35

M keyboards/xbows/knight_plus/config.h => keyboards/xbows/knight_plus/config.h +3 -3
@@ 47,9 47,9 @@
#    define ENABLE_RGB_MATRIX_SPLASH                  // Full gradient & value pulse away from a single key hit then fades value out
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH       // Hue & value pulse away from multiple key hits then fades value out

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#    define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_DRIVER_COUNT 3
#    define DRIVER_1_LED_TOTAL 36
#    define DRIVER_2_LED_TOTAL 35

M keyboards/xbows/nature/config.h => keyboards/xbows/nature/config.h +3 -3
@@ 49,9 49,9 @@
#    define ENABLE_RGB_MATRIX_SPLASH                  // Full gradient & value pulse away from a single key hit then fades value out
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH       // Hue & value pulse away from multiple key hits then fades value out

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#    define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_DRIVER_COUNT 3
#    define DRIVER_1_LED_TOTAL 36
#    define DRIVER_2_LED_TOTAL 36

M keyboards/xbows/numpad/config.h => keyboards/xbows/numpad/config.h +1 -1
@@ 47,7 47,7 @@
#    define ENABLE_RGB_MATRIX_SPLASH                  // Full gradient & value pulse away from a single key hit then fades value out
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH       // Hue & value pulse away from multiple key hits then fades value out

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_VCC
#    define IS31FL3731_DRIVER_COUNT 1
#    define RGB_MATRIX_LED_COUNT 22
#endif

M keyboards/xbows/ranger/config.h => keyboards/xbows/ranger/config.h +3 -3
@@ 46,9 46,9 @@
#    define ENABLE_RGB_MATRIX_SPLASH                  // Full gradient & value pulse away from a single key hit then fades value out
#    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH       // Hue & value pulse away from multiple key hits then fades value out

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SCL
#    define DRIVER_ADDR_3 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
#    define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_DRIVER_COUNT 3
#    define DRIVER_1_LED_TOTAL 36
#    define DRIVER_2_LED_TOTAL 36

M keyboards/xbows/woody/config.h => keyboards/xbows/woody/config.h +2 -2
@@ 56,8 56,8 @@
// #    define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #    define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#    define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#    define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#    define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#    define IS31FL3731_DRIVER_COUNT 2
#    define DRIVER_1_LED_TOTAL 35
#    define DRIVER_2_LED_TOTAL 32

M keyboards/xelus/dawn60/rev1_qmk/config.h => keyboards/xelus/dawn60/rev1_qmk/config.h +2 -2
@@ 24,8 24,8 @@
#define WS2812_LED_TOTAL 20

//RGB Matrix defines
#define DRIVER_ADDR_1 IS31FL3731_I2C_ADDRESS_GND
#define DRIVER_ADDR_2 IS31FL3731_I2C_ADDRESS_SDA
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA

#define IS31FL3731_DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 32

M keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c => keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c +6 -6
@@ 167,22 167,22 @@ led_config_t g_led_config = { {
//Custom Driver
static void init(void) {
    i2c_init();
    is31fl3731_init(DRIVER_ADDR_1);
    is31fl3731_init(DRIVER_ADDR_2);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
    for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
        bool enabled = true;
        is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
    
    //RGB Underglow ws2812
    
}

static void flush(void) {
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
    ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
}


M keyboards/xelus/pachi/rgb/rev1/config.h => keyboards/xelus/pachi/rgb/rev1/config.h +1 -1
@@ 40,7 40,7 @@
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191

// RGB Matrix defines
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND

#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 117

M keyboards/xelus/pachi/rgb/rev1/rev1.c => keyboards/xelus/pachi/rgb/rev1/rev1.c +3 -3
@@ 188,7 188,7 @@ led_config_t g_led_config = { {

static void init(void) {
    i2c_init();
    is31fl3741_init(DRIVER_ADDR_1);
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
    for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
        bool enabled = !(   ( index == -1+0+13) || //A13
                            ( index == -1+13+3) || //B3


@@ 223,11 223,11 @@ static void init(void) {
                        );
        is31fl3741_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
}

static void flush(void) {
    is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0);
}

const rgb_matrix_driver_t rgb_matrix_driver = {

M keyboards/xelus/pachi/rgb/rev2/config.h => keyboards/xelus/pachi/rgb/rev2/config.h +1 -1
@@ 37,7 37,7 @@
#define EEPROM_I2C_24LC64

// RGB Matrix defines
#define DRIVER_ADDR_1 IS31FL3741_I2C_ADDRESS_GND
#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND

#define IS31FL3741_DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 117

M keyboards/xelus/pachi/rgb/rev2/rev2.c => keyboards/xelus/pachi/rgb/rev2/rev2.c +3 -3
@@ 194,7 194,7 @@ led_config_t g_led_config = { {

static void init(void) {
    i2c_init();
    is31fl3741_init(DRIVER_ADDR_1);
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
    for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
        bool enabled = !(   ( index == -1+0+13) || //A13
                            ( index == -1+13+3) || //B3


@@ 229,11 229,11 @@ static void init(void) {
                        );
        is31fl3741_set_led_control_register(index, enabled, enabled, enabled);
    }
    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
}

static void flush(void) {
    is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0);
}

const rgb_matrix_driver_t rgb_matrix_driver = {

M quantum/led_matrix/led_matrix_drivers.c => quantum/led_matrix/led_matrix_drivers.c +135 -134
@@ 35,73 35,73 @@ static void init(void) {
    is31fl3218_init();

#    elif defined(LED_MATRIX_IS31FL3731)
    is31fl3731_init(LED_DRIVER_ADDR_1);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3731_init(LED_DRIVER_ADDR_2);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3731_init(LED_DRIVER_ADDR_3);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3731_init(LED_DRIVER_ADDR_4);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
#        if defined(IS31FL3731_I2C_ADDRESS_2)
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
#            if defined(IS31FL3731_I2C_ADDRESS_3)
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_3);
#                if defined(IS31FL3731_I2C_ADDRESS_4)
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_4);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3733)
#        if !defined(LED_DRIVER_SYNC_1)
#            define LED_DRIVER_SYNC_1 0
#        if !defined(IS31FL3733_SYNC_1)
#            define IS31FL3733_SYNC_1 0
#        endif
    is31fl3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1);
#        if defined(LED_DRIVER_ADDR_2)
#            if !defined(LED_DRIVER_SYNC_2)
#                define LED_DRIVER_SYNC_2 0
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1);
#        if defined(IS31FL3733_I2C_ADDRESS_2)
#            if !defined(IS31FL3733_SYNC_2)
#                define IS31FL3733_SYNC_2 0
#            endif
    is31fl3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2);
#            if defined(LED_DRIVER_ADDR_3)
#                if !defined(LED_DRIVER_SYNC_3)
#                    define LED_DRIVER_SYNC_3 0
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2);
#            if defined(IS31FL3733_I2C_ADDRESS_3)
#                if !defined(IS31FL3733_SYNC_3)
#                    define IS31FL3733_SYNC_3 0
#                endif
    is31fl3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3);
#                if defined(LED_DRIVER_ADDR_4)
#                    if !defined(LED_DRIVER_SYNC_4)
#                        define LED_DRIVER_SYNC_4 0
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3);
#                if defined(IS31FL3733_I2C_ADDRESS_4)
#                    if !defined(IS31FL3733_SYNC_4)
#                        define IS31FL3733_SYNC_4 0
#                    endif
    is31fl3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4);
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3736)
    is31fl3736_init(LED_DRIVER_ADDR_1);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3736_init(LED_DRIVER_ADDR_2);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3736_init(LED_DRIVER_ADDR_3);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3736_init(LED_DRIVER_ADDR_4);
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_1);
#        if defined(IS31FL3736_I2C_ADDRESS_2)
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_2);
#            if defined(IS31FL3736_I2C_ADDRESS_3)
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_3);
#                if defined(IS31FL3736_I2C_ADDRESS_4)
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_4);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3737)
    is31fl3737_init(LED_DRIVER_ADDR_1);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3737_init(LED_DRIVER_ADDR_2);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3737_init(LED_DRIVER_ADDR_3);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3737_init(LED_DRIVER_ADDR_4);
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_1);
#        if defined(IS31FL3737_I2C_ADDRESS_2)
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_2);
#            if defined(IS31FL3737_I2C_ADDRESS_3)
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_3);
#                if defined(IS31FL3737_I2C_ADDRESS_4)
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_4);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3741)
    is31fl3741_init(LED_DRIVER_ADDR_1);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3741_init(LED_DRIVER_ADDR_2);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3741_init(LED_DRIVER_ADDR_3);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3741_init(LED_DRIVER_ADDR_4);
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
#        if defined(IS31FL3741_I2C_ADDRESS_2)
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_2);
#            if defined(IS31FL3741_I2C_ADDRESS_3)
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_3);
#                if defined(IS31FL3741_I2C_ADDRESS_4)
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_4);
#                endif
#            endif
#        endif


@@ 123,13 123,13 @@ static void init(void) {
    writePinHigh(LED_DRIVER_SHUTDOWN_PIN);
#        endif

    snled27351_init(DRIVER_ADDR_1);
#        if defined(DRIVER_ADDR_2)
    snled27351_init(DRIVER_ADDR_2);
#            if defined(DRIVER_ADDR_3)
    snled27351_init(DRIVER_ADDR_3);
#                if defined(DRIVER_ADDR_4)
    snled27351_init(DRIVER_ADDR_4);
    snled27351_init(SNLED27351_I2C_ADDRESS_1);
#        if defined(SNLED27351_I2C_ADDRESS_2)
    snled27351_init(SNLED27351_I2C_ADDRESS_2);
#            if defined(SNLED27351_I2C_ADDRESS_3)
    snled27351_init(SNLED27351_I2C_ADDRESS_3);
#                if defined(SNLED27351_I2C_ADDRESS_4)
    snled27351_init(SNLED27351_I2C_ADDRESS_4);
#                endif
#            endif
#        endif


@@ 160,61 160,61 @@ static void init(void) {
    is31fl3218_update_led_control_registers();

#    elif defined(LED_MATRIX_IS31FL3731)
    is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3731_I2C_ADDRESS_2)
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3731_I2C_ADDRESS_3)
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3731_I2C_ADDRESS_4)
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3733)
    is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3733_I2C_ADDRESS_2)
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3733_I2C_ADDRESS_3)
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3733_I2C_ADDRESS_4)
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3736)
    is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3736_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3736_I2C_ADDRESS_2)
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3736_I2C_ADDRESS_3)
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3736_I2C_ADDRESS_4)
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3737)
    is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3737_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3737_I2C_ADDRESS_2)
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3737_I2C_ADDRESS_3)
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3737_I2C_ADDRESS_4)
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_IS31FL3741)
    is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3741_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3741_I2C_ADDRESS_2)
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3741_I2C_ADDRESS_3)
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3741_I2C_ADDRESS_4)
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 233,14 233,15 @@ static void init(void) {
#                endif
#            endif
#        endif

#    elif defined(LED_MATRIX_SNLED27351)
    snled27351_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    snled27351_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    snled27351_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    snled27351_update_led_control_registers(DRIVER_ADDR_4, 3);
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0);
#        if defined(SNLED27351_I2C_ADDRESS_2)
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1);
#            if defined(SNLED27351_I2C_ADDRESS_3)
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2);
#                if defined(SNLED27351_I2C_ADDRESS_4)
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 261,13 262,13 @@ const led_matrix_driver_t led_matrix_driver = {

#    elif defined(LED_MATRIX_IS31FL3731)
static void flush(void) {
    is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3731_I2C_ADDRESS_2)
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3731_I2C_ADDRESS_3)
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3731_I2C_ADDRESS_4)
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 282,13 283,13 @@ const led_matrix_driver_t led_matrix_driver = {

#    elif defined(LED_MATRIX_IS31FL3733)
static void flush(void) {
    is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3733_I2C_ADDRESS_2)
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3733_I2C_ADDRESS_3)
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3733_I2C_ADDRESS_4)
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 303,13 304,13 @@ const led_matrix_driver_t led_matrix_driver = {

#    elif defined(LED_MATRIX_IS31FL3736)
static void flush(void) {
    is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3736_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3736_I2C_ADDRESS_2)
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3736_I2C_ADDRESS_3)
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3736_I2C_ADDRESS_4)
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 324,13 325,13 @@ const led_matrix_driver_t led_matrix_driver = {

#    elif defined(LED_MATRIX_IS31FL3737)
static void flush(void) {
    is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3737_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3737_I2C_ADDRESS_2)
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3737_I2C_ADDRESS_3)
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3737_I2C_ADDRESS_4)
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 345,13 346,13 @@ const led_matrix_driver_t led_matrix_driver = {

#    elif defined(LED_MATRIX_IS31FL3741)
static void flush(void) {
    is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
#        if defined(LED_DRIVER_ADDR_2)
    is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
#            if defined(LED_DRIVER_ADDR_3)
    is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
#                if defined(LED_DRIVER_ADDR_4)
    is31fl3741_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3741_I2C_ADDRESS_2)
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3741_I2C_ADDRESS_3)
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3741_I2C_ADDRESS_4)
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 386,13 387,13 @@ const led_matrix_driver_t led_matrix_driver = {
};
#    elif defined(LED_MATRIX_SNLED27351)
static void flush(void) {
    snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3);
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0);
#        if defined(SNLED27351_I2C_ADDRESS_2)
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1);
#            if defined(SNLED27351_I2C_ADDRESS_3)
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2);
#                if defined(SNLED27351_I2C_ADDRESS_4)
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

M quantum/rgb_matrix/rgb_matrix_drivers.c => quantum/rgb_matrix/rgb_matrix_drivers.c +140 -147
@@ 27,13 27,6 @@
#if defined(RGB_MATRIX_IS31FL3218) || defined(RGB_MATRIX_IS31FL3731) || defined(RGB_MATRIX_IS31FL3733) || defined(RGB_MATRIX_IS31FL3736) || defined(RGB_MATRIX_IS31FL3737) || defined(RGB_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(RGB_MATRIX_SNLED27351)
#    include "i2c_master.h"

// TODO: Remove this at some later date
#    if defined(DRIVER_ADDR_1) && defined(DRIVER_ADDR_2)
#        if DRIVER_ADDR_1 == DRIVER_ADDR_2
#            error "Setting DRIVER_ADDR_2 == DRIVER_ADDR_1 is obsolete. If you are only using one ISSI driver, set DRIVER_COUNT to 1 and remove DRIVER_ADDR_2"
#        endif
#    endif

static void init(void) {
    i2c_init();



@@ 41,73 34,73 @@ static void init(void) {
    is31fl3218_init();

#    elif defined(RGB_MATRIX_IS31FL3731)
    is31fl3731_init(DRIVER_ADDR_1);
#        if defined(DRIVER_ADDR_2)
    is31fl3731_init(DRIVER_ADDR_2);
#            if defined(DRIVER_ADDR_3)
    is31fl3731_init(DRIVER_ADDR_3);
#                if defined(DRIVER_ADDR_4)
    is31fl3731_init(DRIVER_ADDR_4);
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
#        if defined(IS31FL3731_I2C_ADDRESS_2)
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
#            if defined(IS31FL3731_I2C_ADDRESS_3)
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_3);
#                if defined(IS31FL3731_I2C_ADDRESS_4)
    is31fl3731_init(IS31FL3731_I2C_ADDRESS_4);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3733)
#        if !defined(DRIVER_SYNC_1)
#            define DRIVER_SYNC_1 0
#        if !defined(IS31FL3733_SYNC_1)
#            define IS31FL3733_SYNC_1 0
#        endif
    is31fl3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1);
#        if defined(DRIVER_ADDR_2)
#            if !defined(DRIVER_SYNC_2)
#                define DRIVER_SYNC_2 0
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1);
#        if defined(IS31FL3733_I2C_ADDRESS_2)
#            if !defined(IS31FL3733_SYNC_2)
#                define IS31FL3733_SYNC_2 0
#            endif
    is31fl3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2);
#            if defined(DRIVER_ADDR_3)
#                if !defined(DRIVER_SYNC_3)
#                    define DRIVER_SYNC_3 0
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2);
#            if defined(IS31FL3733_I2C_ADDRESS_3)
#                if !defined(IS31FL3733_SYNC_3)
#                    define IS31FL3733_SYNC_3 0
#                endif
    is31fl3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3);
#                if defined(DRIVER_ADDR_4)
#                    if !defined(DRIVER_SYNC_4)
#                        define DRIVER_SYNC_4 0
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3);
#                if defined(IS31FL3733_I2C_ADDRESS_4)
#                    if !defined(IS31FL3733_SYNC_4)
#                        define IS31FL3733_SYNC_4 0
#                    endif
    is31fl3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4);
    is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3736)
    is31fl3736_init(DRIVER_ADDR_1);
#        if defined(DRIVER_ADDR_2)
    is31fl3736_init(DRIVER_ADDR_2);
#            if defined(DRIVER_ADDR_3)
    is31fl3736_init(DRIVER_ADDR_3);
#                if defined(DRIVER_ADDR_4)
    is31fl3736_init(DRIVER_ADDR_4);
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_1);
#        if defined(IS31FL3736_I2C_ADDRESS_2)
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_2);
#            if defined(IS31FL3736_I2C_ADDRESS_3)
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_3);
#                if defined(IS31FL3736_I2C_ADDRESS_4)
    is31fl3736_init(IS31FL3736_I2C_ADDRESS_4);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3737)
    is31fl3737_init(DRIVER_ADDR_1);
#        if defined(DRIVER_ADDR_2)
    is31fl3737_init(DRIVER_ADDR_2);
#            if defined(DRIVER_ADDR_3)
    is31fl3737_init(DRIVER_ADDR_3);
#                if defined(DRIVER_ADDR_4)
    is31fl3737_init(DRIVER_ADDR_4);
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_1);
#        if defined(IS31FL3737_I2C_ADDRESS_2)
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_2);
#            if defined(IS31FL3737_I2C_ADDRESS_3)
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_3);
#                if defined(IS31FL3737_I2C_ADDRESS_4)
    is31fl3737_init(IS31FL3737_I2C_ADDRESS_4);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3741)
    is31fl3741_init(DRIVER_ADDR_1);
#        if defined(DRIVER_ADDR_2)
    is31fl3741_init(DRIVER_ADDR_2);
#            if defined(DRIVER_ADDR_3)
    is31fl3741_init(DRIVER_ADDR_3);
#                if defined(DRIVER_ADDR_4)
    is31fl3741_init(DRIVER_ADDR_4);
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
#        if defined(IS31FL3741_I2C_ADDRESS_2)
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_2);
#            if defined(IS31FL3741_I2C_ADDRESS_3)
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_3);
#                if defined(IS31FL3741_I2C_ADDRESS_4)
    is31fl3741_init(IS31FL3741_I2C_ADDRESS_4);
#                endif
#            endif
#        endif


@@ 125,13 118,13 @@ static void init(void) {
#        endif

#    elif defined(RGB_MATRIX_SNLED27351)
    snled27351_init(DRIVER_ADDR_1);
#        if defined(DRIVER_ADDR_2)
    snled27351_init(DRIVER_ADDR_2);
#            if defined(DRIVER_ADDR_3)
    snled27351_init(DRIVER_ADDR_3);
#                if defined(DRIVER_ADDR_4)
    snled27351_init(DRIVER_ADDR_4);
    snled27351_init(SNLED27351_I2C_ADDRESS_1);
#        if defined(SNLED27351_I2C_ADDRESS_2)
    snled27351_init(SNLED27351_I2C_ADDRESS_2);
#            if defined(SNLED27351_I2C_ADDRESS_3)
    snled27351_init(SNLED27351_I2C_ADDRESS_3);
#                if defined(SNLED27351_I2C_ADDRESS_4)
    snled27351_init(SNLED27351_I2C_ADDRESS_4);
#                endif
#            endif
#        endif


@@ 165,61 158,61 @@ static void init(void) {
    is31fl3218_update_led_control_registers();

#    elif defined(RGB_MATRIX_IS31FL3731)
    is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3731_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3731_update_led_control_registers(DRIVER_ADDR_4, 3);
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3731_I2C_ADDRESS_2)
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3731_I2C_ADDRESS_3)
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3731_I2C_ADDRESS_4)
    is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3733)
    is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3733_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3733_update_led_control_registers(DRIVER_ADDR_4, 3);
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3733_I2C_ADDRESS_2)
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3733_I2C_ADDRESS_3)
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3733_I2C_ADDRESS_4)
    is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3736)
    is31fl3736_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3736_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3736_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3736_update_led_control_registers(DRIVER_ADDR_4, 3);
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3736_I2C_ADDRESS_2)
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3736_I2C_ADDRESS_3)
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3736_I2C_ADDRESS_4)
    is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3737)
    is31fl3737_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3737_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3737_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3737_update_led_control_registers(DRIVER_ADDR_4, 3);
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3737_I2C_ADDRESS_2)
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3737_I2C_ADDRESS_3)
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3737_I2C_ADDRESS_4)
    is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif

#    elif defined(RGB_MATRIX_IS31FL3741)
    is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3741_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3741_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3741_update_led_control_registers(DRIVER_ADDR_4, 3);
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3741_I2C_ADDRESS_2)
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3741_I2C_ADDRESS_3)
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3741_I2C_ADDRESS_4)
    is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 240,13 233,13 @@ static void init(void) {
#        endif

#    elif defined(RGB_MATRIX_SNLED27351)
    snled27351_update_led_control_registers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    snled27351_update_led_control_registers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    snled27351_update_led_control_registers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    snled27351_update_led_control_registers(DRIVER_ADDR_4, 3);
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0);
#        if defined(SNLED27351_I2C_ADDRESS_2)
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1);
#            if defined(SNLED27351_I2C_ADDRESS_3)
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2);
#                if defined(SNLED27351_I2C_ADDRESS_4)
    snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 267,13 260,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = {

#    elif defined(RGB_MATRIX_IS31FL3731)
static void flush(void) {
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3731_update_pwm_buffers(DRIVER_ADDR_4, 3);
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3731_I2C_ADDRESS_2)
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3731_I2C_ADDRESS_3)
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3731_I2C_ADDRESS_4)
    is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 288,13 281,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = {

#    elif defined(RGB_MATRIX_IS31FL3733)
static void flush(void) {
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3733_update_pwm_buffers(DRIVER_ADDR_4, 3);
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3733_I2C_ADDRESS_2)
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3733_I2C_ADDRESS_3)
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3733_I2C_ADDRESS_4)
    is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 309,13 302,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = {

#    elif defined(RGB_MATRIX_IS31FL3736)
static void flush(void) {
    is31fl3736_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3736_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3736_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3736_update_pwm_buffers(DRIVER_ADDR_4, 3);
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3736_I2C_ADDRESS_2)
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3736_I2C_ADDRESS_3)
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3736_I2C_ADDRESS_4)
    is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 330,13 323,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = {

#    elif defined(RGB_MATRIX_IS31FL3737)
static void flush(void) {
    is31fl3737_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3737_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3737_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3737_update_pwm_buffers(DRIVER_ADDR_4, 3);
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3737_I2C_ADDRESS_2)
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3737_I2C_ADDRESS_3)
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3737_I2C_ADDRESS_4)
    is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 351,13 344,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = {

#    elif defined(RGB_MATRIX_IS31FL3741)
static void flush(void) {
    is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    is31fl3741_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    is31fl3741_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    is31fl3741_update_pwm_buffers(DRIVER_ADDR_4, 3);
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0);
#        if defined(IS31FL3741_I2C_ADDRESS_2)
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1);
#            if defined(IS31FL3741_I2C_ADDRESS_3)
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2);
#                if defined(IS31FL3741_I2C_ADDRESS_4)
    is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 393,13 386,13 @@ const rgb_matrix_driver_t rgb_matrix_driver = {

#    elif defined(RGB_MATRIX_SNLED27351)
static void flush(void) {
    snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0);
#        if defined(DRIVER_ADDR_2)
    snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1);
#            if defined(DRIVER_ADDR_3)
    snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2);
#                if defined(DRIVER_ADDR_4)
    snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3);
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0);
#        if defined(SNLED27351_I2C_ADDRESS_2)
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1);
#            if defined(SNLED27351_I2C_ADDRESS_3)
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2);
#                if defined(SNLED27351_I2C_ADDRESS_4)
    snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3);
#                endif
#            endif
#        endif


@@ 419,16 412,16 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
static void init(void) {
    spi_init();

    aw20216s_init(AW20216S_DRIVER_1_CS, AW20216S_DRIVER_1_EN);
#    if defined(AW20216S_DRIVER_2_CS)
    aw20216s_init(AW20216S_DRIVER_2_CS, AW20216S_DRIVER_2_EN);
    aw20216s_init(AW20216S_CS_PIN_1, AW20216S_EN_PIN_1);
#    if defined(AW20216S_CS_PIN_2)
    aw20216s_init(AW20216S_CS_PIN_2, AW20216S_EN_PIN_2);
#    endif
}

static void flush(void) {
    aw20216s_update_pwm_buffers(AW20216S_DRIVER_1_CS, 0);
#    if defined(AW20216S_DRIVER_2_CS)
    aw20216s_update_pwm_buffers(AW20216S_DRIVER_2_CS, 1);
    aw20216s_update_pwm_buffers(AW20216S_CS_PIN_1, 0);
#    if defined(AW20216S_CS_PIN_2)
    aw20216s_update_pwm_buffers(AW20216S_CS_PIN_2, 1);
#    endif
}


Do not follow this link