is31fl3736: extract single-color API (#22133)
This commit is contained in:
parent
5da3604ec3
commit
32de27bb20
23 changed files with 654 additions and 95 deletions
|
@ -33,7 +33,7 @@
|
|||
#error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct
|
||||
#endif
|
||||
|
||||
#include "drivers/led/issi/is31fl3736.h"
|
||||
#include "drivers/led/issi/is31fl3736-simple.h"
|
||||
|
||||
#define ISSI_ADDR_DEFAULT 0x50
|
||||
|
||||
|
@ -52,6 +52,116 @@ backlight_config g_config = {
|
|||
.color_1 = MONO_BACKLIGHT_COLOR_1,
|
||||
};
|
||||
|
||||
const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
|
||||
{0, A_1},
|
||||
{0, A_2},
|
||||
{0, A_3},
|
||||
{0, A_4},
|
||||
{0, A_5},
|
||||
{0, A_6},
|
||||
{0, A_7},
|
||||
{0, A_8},
|
||||
|
||||
{0, B_1},
|
||||
{0, B_2},
|
||||
{0, B_3},
|
||||
{0, B_4},
|
||||
{0, B_5},
|
||||
{0, B_6},
|
||||
{0, B_7},
|
||||
{0, B_8},
|
||||
|
||||
{0, C_1},
|
||||
{0, C_2},
|
||||
{0, C_3},
|
||||
{0, C_4},
|
||||
{0, C_5},
|
||||
{0, C_6},
|
||||
{0, C_7},
|
||||
{0, C_8},
|
||||
|
||||
{0, D_1},
|
||||
{0, D_2},
|
||||
{0, D_3},
|
||||
{0, D_4},
|
||||
{0, D_5},
|
||||
{0, D_6},
|
||||
{0, D_7},
|
||||
{0, D_8},
|
||||
|
||||
{0, E_1},
|
||||
{0, E_2},
|
||||
{0, E_3},
|
||||
{0, E_4},
|
||||
{0, E_5},
|
||||
{0, E_6},
|
||||
{0, E_7},
|
||||
{0, E_8},
|
||||
|
||||
{0, F_1},
|
||||
{0, F_2},
|
||||
{0, F_3},
|
||||
{0, F_4},
|
||||
{0, F_5},
|
||||
{0, F_6},
|
||||
{0, F_7},
|
||||
{0, F_8},
|
||||
|
||||
{0, G_1},
|
||||
{0, G_2},
|
||||
{0, G_3},
|
||||
{0, G_4},
|
||||
{0, G_5},
|
||||
{0, G_6},
|
||||
{0, G_7},
|
||||
{0, G_8},
|
||||
|
||||
{0, H_1},
|
||||
{0, H_2},
|
||||
{0, H_3},
|
||||
{0, H_4},
|
||||
{0, H_5},
|
||||
{0, H_6},
|
||||
{0, H_7},
|
||||
{0, H_8},
|
||||
|
||||
{0, I_1},
|
||||
{0, I_2},
|
||||
{0, I_3},
|
||||
{0, I_4},
|
||||
{0, I_5},
|
||||
{0, I_6},
|
||||
{0, I_7},
|
||||
{0, I_8},
|
||||
|
||||
{0, J_1},
|
||||
{0, J_2},
|
||||
{0, J_3},
|
||||
{0, J_4},
|
||||
{0, J_5},
|
||||
{0, J_6},
|
||||
{0, J_7},
|
||||
{0, J_8},
|
||||
|
||||
{0, K_1},
|
||||
{0, K_2},
|
||||
{0, K_3},
|
||||
{0, K_4},
|
||||
{0, K_5},
|
||||
{0, K_6},
|
||||
{0, K_7},
|
||||
{0, K_8},
|
||||
|
||||
{0, L_1},
|
||||
{0, L_2},
|
||||
{0, L_3},
|
||||
{0, L_4},
|
||||
{0, L_5},
|
||||
{0, L_6},
|
||||
{0, L_7},
|
||||
{0, L_8}
|
||||
};
|
||||
|
||||
bool g_suspend_state = false;
|
||||
|
||||
// Global tick at 20 Hz
|
||||
|
@ -67,9 +177,9 @@ void backlight_init_drivers(void)
|
|||
is31fl3736_init( ISSI_ADDR_DEFAULT );
|
||||
|
||||
for ( uint8_t index = 0; index < 96; index++ ) {
|
||||
is31fl3736_mono_set_led_control_register( index, true );
|
||||
is31fl3736_set_led_control_register( index, true );
|
||||
}
|
||||
is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0x00 );
|
||||
is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0 );
|
||||
}
|
||||
|
||||
void backlight_set_key_hit(uint8_t row, uint8_t column)
|
||||
|
@ -119,17 +229,17 @@ void backlight_set_suspend_state(bool state)
|
|||
|
||||
void backlight_set_brightness_all( uint8_t value )
|
||||
{
|
||||
is31fl3736_mono_set_brightness_all( value );
|
||||
is31fl3736_set_value_all( value );
|
||||
}
|
||||
|
||||
void backlight_effect_all_off(void)
|
||||
{
|
||||
is31fl3736_mono_set_brightness_all( 0 );
|
||||
is31fl3736_set_value_all( 0 );
|
||||
}
|
||||
|
||||
void backlight_effect_all_on(void)
|
||||
{
|
||||
is31fl3736_mono_set_brightness_all( g_config.brightness );
|
||||
is31fl3736_set_value_all( g_config.brightness );
|
||||
}
|
||||
|
||||
void backlight_effect_raindrops(bool initialize)
|
||||
|
@ -143,7 +253,7 @@ void backlight_effect_raindrops(bool initialize)
|
|||
// If not, all but one will stay the same as before.
|
||||
if ( initialize || i == led_to_change )
|
||||
{
|
||||
is31fl3736_mono_set_brightness(i, rand() & 0xFF );
|
||||
is31fl3736_set_value(i, rand() & 0xFF );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -165,9 +275,9 @@ void backlight_effect_indicators(void)
|
|||
// SW7,CS8 = (6*8+7) = 55
|
||||
// SW8,CS8 = (7*8+7) = 63
|
||||
// SW9,CS8 = (8*8+7) = 71
|
||||
is31fl3736_mono_set_brightness(55, rgb.r);
|
||||
is31fl3736_mono_set_brightness(63, rgb.g);
|
||||
is31fl3736_mono_set_brightness(71, rgb.b);
|
||||
is31fl3736_set_value(55, rgb.r);
|
||||
is31fl3736_set_value(63, rgb.g);
|
||||
is31fl3736_set_value(71, rgb.b);
|
||||
#endif // MONO_BACKLIGHT_WT75_A
|
||||
|
||||
// This pairs with "All Off" already setting zero brightness,
|
||||
|
@ -181,19 +291,19 @@ defined(MONO_BACKLIGHT_WT75_C) || \
|
|||
defined(MONO_BACKLIGHT_WT80_A)
|
||||
if ( host_keyboard_led_state().caps_lock ) {
|
||||
// SW3,CS1 = (2*8+0) = 16
|
||||
is31fl3736_mono_set_brightness(16, 255);
|
||||
is31fl3736_set_value(16, 255);
|
||||
}
|
||||
#endif
|
||||
#if defined(MONO_BACKLIGHT_WT80_A)
|
||||
if ( host_keyboard_led_state().scroll_lock ) {
|
||||
// SW7,CS7 = (6*8+6) = 54
|
||||
is31fl3736_mono_set_brightness(54, 255);
|
||||
is31fl3736_set_value(54, 255);
|
||||
}
|
||||
#endif
|
||||
#if defined(MONO_BACKLIGHT_WT75_C)
|
||||
if ( host_keyboard_led_state().scroll_lock ) {
|
||||
// SW7,CS8 = (6*8+7) = 55
|
||||
is31fl3736_mono_set_brightness(55, 255);
|
||||
is31fl3736_set_value(55, 255);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -361,7 +471,7 @@ void backlight_config_save(void)
|
|||
|
||||
void backlight_update_pwm_buffers(void)
|
||||
{
|
||||
is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT,0x00);
|
||||
is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT, 0);
|
||||
}
|
||||
|
||||
bool process_record_backlight(uint16_t keycode, keyrecord_t *record)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue