Skip to content

Commit

Permalink
LED drivers: clean up SWx/CSy pullup/down resistor config (qmk#22381
Browse files Browse the repository at this point in the history
)
  • Loading branch information
fauxpark authored and Lorenzo Castoldi committed Dec 27, 2023
1 parent bbb21da commit 35061dc
Show file tree
Hide file tree
Showing 18 changed files with 302 additions and 218 deletions.
16 changes: 8 additions & 8 deletions drivers/led/issi/is31fl3733-simple.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3
#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3
#define IS31FL3733_REG_RESET 0x11 // PG3
#define IS31FL3733_REG_SWPULLUP 0x0F // PG3
#define IS31FL3733_REG_CSPULLUP 0x10 // PG3
#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3
#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3

#define IS31FL3733_PWM_REGISTER_COUNT 192
#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24
Expand All @@ -54,12 +54,12 @@
# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
#endif

#ifndef IS31FL3733_SWPULLUP
# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R
#ifndef IS31FL3733_SW_PULLUP
# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM
#endif

#ifndef IS31FL3733_CSPULLUP
# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R
#ifndef IS31FL3733_CS_PULLDOWN
# define IS31FL3733_CSPULLDOWN IS31FL3733_PDR_0_OHM
#endif

#ifndef IS31FL3733_GLOBALCURRENT
Expand Down Expand Up @@ -206,9 +206,9 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) {
// Select PG3
is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
is31fl3733_write_register(addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP);
is31fl3733_write_register(addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
is31fl3733_write_register(addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP);
is31fl3733_write_register(addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN);
// Set global current to maximum.
is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT);
// Disable software shutdown.
Expand Down
42 changes: 26 additions & 16 deletions drivers/led/issi/is31fl3733-simple.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@
# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY
#endif
#ifdef ISSI_SWPULLUP
# define IS31FL3733_SWPULLUP ISSI_SWPULLUP
# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP
#endif
#ifdef ISSI_CSPULLUP
# define IS31FL3733_CSPULLUP ISSI_CSPULLUP
# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP
#endif
#ifdef ISSI_GLOBALCURRENT
# define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT
Expand All @@ -51,13 +51,13 @@
#define is31_led is31fl3733_led_t
#define g_is31_leds g_is31fl3733_leds

#define PUR_0R IS31FL3733_PUR_0R
#define PUR_05KR IS31FL3733_PUR_05KR
#define PUR_3KR IS31FL3733_PUR_3KR
#define PUR_4KR IS31FL3733_PUR_4KR
#define PUR_8KR IS31FL3733_PUR_8KR
#define PUR_16KR IS31FL3733_PUR_16KR
#define PUR_32KR IS31FL3733_PUR_32KR
#define PUR_0R IS31FL3733_PUR_0_OHM
#define PUR_05KR IS31FL3733_PUR_1K_OHM
#define PUR_3KR IS31FL3733_PUR_2K_OHM
#define PUR_4KR IS31FL3733_PUR_4K_OHM
#define PUR_8KR IS31FL3733_PUR_8K_OHM
#define PUR_16KR IS31FL3733_PUR_16K_OHM
#define PUR_32KR IS31FL3733_PUR_32K_OHM
// ========

#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50
Expand Down Expand Up @@ -107,13 +107,23 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index);

void is31fl3733_flush(void);

#define IS31FL3733_PUR_0R 0x00 // No PUR resistor
#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL
#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time
#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time
#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time
#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor
#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor
#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor
#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor
#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor
#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor
#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor

#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor
#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor
#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor
#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor
#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor
#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor
#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor

#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000
#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001
Expand Down
16 changes: 8 additions & 8 deletions drivers/led/issi/is31fl3733.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@
#define IS31FL3733_REG_CONFIGURATION 0x00 // PG3
#define IS31FL3733_REG_GLOBALCURRENT 0x01 // PG3
#define IS31FL3733_REG_RESET 0x11 // PG3
#define IS31FL3733_REG_SWPULLUP 0x0F // PG3
#define IS31FL3733_REG_CSPULLUP 0x10 // PG3
#define IS31FL3733_REG_SW_PULLUP 0x0F // PG3
#define IS31FL3733_REG_CS_PULLDOWN 0x10 // PG3

#define IS31FL3733_PWM_REGISTER_COUNT 192
#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24
Expand All @@ -53,12 +53,12 @@
# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
#endif

#ifndef IS31FL3733_SWPULLUP
# define IS31FL3733_SWPULLUP IS31FL3733_PUR_0R
#ifndef IS31FL3733_SW_PULLUP
# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM
#endif

#ifndef IS31FL3733_CSPULLUP
# define IS31FL3733_CSPULLUP IS31FL3733_PUR_0R
#ifndef IS31FL3733_CS_PULLDOWN
# define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM
#endif

#ifndef IS31FL3733_GLOBALCURRENT
Expand Down Expand Up @@ -205,9 +205,9 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) {
// Select PG3
is31fl3733_write_register(addr, IS31FL3733_COMMANDREGISTER, IS31FL3733_PAGE_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
is31fl3733_write_register(addr, IS31FL3733_REG_SWPULLUP, IS31FL3733_SWPULLUP);
is31fl3733_write_register(addr, IS31FL3733_REG_SW_PULLUP, IS31FL3733_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
is31fl3733_write_register(addr, IS31FL3733_REG_CSPULLUP, IS31FL3733_CSPULLUP);
is31fl3733_write_register(addr, IS31FL3733_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN);
// Set global current to maximum.
is31fl3733_write_register(addr, IS31FL3733_REG_GLOBALCURRENT, IS31FL3733_GLOBALCURRENT);
// Disable software shutdown.
Expand Down
42 changes: 26 additions & 16 deletions drivers/led/issi/is31fl3733.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,10 @@
# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY
#endif
#ifdef ISSI_SWPULLUP
# define IS31FL3733_SWPULLUP ISSI_SWPULLUP
# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP
#endif
#ifdef ISSI_CSPULLUP
# define IS31FL3733_CSPULLUP ISSI_CSPULLUP
# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP
#endif
#ifdef ISSI_GLOBALCURRENT
# define IS31FL3733_GLOBALCURRENT ISSI_GLOBALCURRENT
Expand All @@ -74,13 +74,13 @@
#define is31_led is31fl3733_led_t
#define g_is31_leds g_is31fl3733_leds

#define PUR_0R IS31FL3733_PUR_0R
#define PUR_05KR IS31FL3733_PUR_05KR
#define PUR_3KR IS31FL3733_PUR_3KR
#define PUR_4KR IS31FL3733_PUR_4KR
#define PUR_8KR IS31FL3733_PUR_8KR
#define PUR_16KR IS31FL3733_PUR_16KR
#define PUR_32KR IS31FL3733_PUR_32KR
#define PUR_0R IS31FL3733_PUR_0_OHM
#define PUR_05KR IS31FL3733_PUR_1K_OHM
#define PUR_3KR IS31FL3733_PUR_2K_OHM
#define PUR_4KR IS31FL3733_PUR_4K_OHM
#define PUR_8KR IS31FL3733_PUR_8K_OHM
#define PUR_16KR IS31FL3733_PUR_16K_OHM
#define PUR_32KR IS31FL3733_PUR_32K_OHM
// ========

#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50
Expand Down Expand Up @@ -132,13 +132,23 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index);

void is31fl3733_flush(void);

#define IS31FL3733_PUR_0R 0x00 // No PUR resistor
#define IS31FL3733_PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL
#define IS31FL3733_PUR_3KR 0x03 // 3.0k Ohm resistor on all the time
#define IS31FL3733_PUR_4KR 0x04 // 4.0k Ohm resistor on all the time
#define IS31FL3733_PUR_8KR 0x05 // 8.0k Ohm resistor on all the time
#define IS31FL3733_PUR_16KR 0x06 // 16k Ohm resistor on all the time
#define IS31FL3733_PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor
#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor
#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor
#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor
#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor
#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor
#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor

#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor
#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor
#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor
#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor
#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor
#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor
#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor

#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000
#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001
Expand Down
16 changes: 8 additions & 8 deletions drivers/led/issi/is31fl3736-simple.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
#define IS31FL3736_REG_CONFIGURATION 0x00 // PG3
#define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3
#define IS31FL3736_REG_RESET 0x11 // PG3
#define IS31FL3736_REG_SWPULLUP 0x0F // PG3
#define IS31FL3736_REG_CSPULLUP 0x10 // PG3
#define IS31FL3736_REG_SW_PULLUP 0x0F // PG3
#define IS31FL3736_REG_CS_PULLDOWN 0x10 // PG3

#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96
#define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24
Expand All @@ -51,12 +51,12 @@
# define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only
#endif

#ifndef IS31FL3736_SWPULLUP
# define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R
#ifndef IS31FL3736_SW_PULLUP
# define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM
#endif

#ifndef IS31FL3736_CSPULLUP
# define IS31FL3736_CSPULLUP IS31FL3736_PUR_0R
#ifndef IS31FL3736_CS_PULLDOWN
# define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM
#endif

#ifndef IS31FL3736_GLOBALCURRENT
Expand Down Expand Up @@ -178,9 +178,9 @@ void is31fl3736_init(uint8_t addr) {
// Select PG3
is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
is31fl3736_write_register(addr, IS31FL3736_REG_SWPULLUP, IS31FL3736_SWPULLUP);
is31fl3736_write_register(addr, IS31FL3736_REG_SW_PULLUP, IS31FL3736_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
is31fl3736_write_register(addr, IS31FL3736_REG_CSPULLUP, IS31FL3736_CSPULLUP);
is31fl3736_write_register(addr, IS31FL3736_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN);
// Set global current to maximum.
is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT);
// Disable software shutdown.
Expand Down
45 changes: 27 additions & 18 deletions drivers/led/issi/is31fl3736-simple.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE
#endif
#ifdef ISSI_SWPULLUP
# define IS31FL3736_SWPULLUP ISSI_SWPULLUP
# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP
#endif
#ifdef ISSI_CSPULLUP
# define IS31FL3736_CSPULLUP ISSI_CSPULLUP
# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP
#endif
#ifdef ISSI_GLOBALCURRENT
# define IS31FL3736_GLOBALCURRENT ISSI_GLOBALCURRENT
Expand All @@ -45,14 +45,14 @@
#define is31_led is31fl3736_led_t
#define g_is31_leds g_is31fl3736_leds

#define PUR_0R IS31FL3736_PUR_0R
#define PUR_05KR IS31FL3736_PUR_05KR
#define PUR_1KR IS31FL3736_PUR_1KR
#define PUR_2KR IS31FL3736_PUR_2KR
#define PUR_4KR IS31FL3736_PUR_4KR
#define PUR_8KR IS31FL3736_PUR_8KR
#define PUR_16KR IS31FL3736_PUR_16KR
#define PUR_32KR IS31FL3736_PUR_32KR
#define PUR_0R IS31FL3736_PUR_0_OHM
#define PUR_05KR IS31FL3736_PUR_05K_OHM
#define PUR_1KR IS31FL3736_PUR_1K_OHM
#define PUR_2KR IS31FL3736_PUR_2K_OHM
#define PUR_4KR IS31FL3736_PUR_4K_OHM
#define PUR_8KR IS31FL3736_PUR_8K_OHM
#define PUR_16KR IS31FL3736_PUR_16K_OHM
#define PUR_32KR IS31FL3736_PUR_32K_OHM
// ========

#define IS31FL3736_I2C_ADDRESS_GND_GND 0x50
Expand Down Expand Up @@ -102,14 +102,23 @@ void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index);

void is31fl3736_flush(void);

#define IS31FL3736_PUR_0R 0x00 // No PUR resistor
#define IS31FL3736_PUR_05KR 0x01 // 0.5k Ohm resistor
#define IS31FL3736_PUR_1KR 0x02 // 1.0k Ohm resistor
#define IS31FL3736_PUR_2KR 0x03 // 2.0k Ohm resistor
#define IS31FL3736_PUR_4KR 0x04 // 4.0k Ohm resistor
#define IS31FL3736_PUR_8KR 0x05 // 8.0k Ohm resistor
#define IS31FL3736_PUR_16KR 0x06 // 16k Ohm resistor
#define IS31FL3736_PUR_32KR 0x07 // 32k Ohm resistor
#define IS31FL3736_PDR_0_OHM 0b000 // No pull-down resistor
#define IS31FL3736_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
#define IS31FL3736_PDR_1K_OHM 0b010 // 1 kOhm resistor
#define IS31FL3736_PDR_2K_OHM 0b011 // 2 kOhm resistor
#define IS31FL3736_PDR_4K_OHM 0b100 // 4 kOhm resistor
#define IS31FL3736_PDR_8K_OHM 0b101 // 8 kOhm resistor
#define IS31FL3736_PDR_16K_OHM 0b110 // 16 kOhm resistor
#define IS31FL3736_PDR_32K_OHM 0b111 // 32 kOhm resistor

#define IS31FL3736_PUR_0_OHM 0b000 // No pull-up resistor
#define IS31FL3736_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
#define IS31FL3736_PUR_1K_OHM 0b010 // 1 kOhm resistor
#define IS31FL3736_PUR_2K_OHM 0b011 // 2 kOhm resistor
#define IS31FL3736_PUR_4K_OHM 0b100 // 4 kOhm resistor
#define IS31FL3736_PUR_8K_OHM 0b101 // 8 kOhm resistor
#define IS31FL3736_PUR_16K_OHM 0b110 // 16 kOhm resistor
#define IS31FL3736_PUR_32K_OHM 0b111 // 32 kOhm resistor

#define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000
#define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001
Expand Down
16 changes: 8 additions & 8 deletions drivers/led/issi/is31fl3736.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
#define IS31FL3736_REG_CONFIGURATION 0x00 // PG3
#define IS31FL3736_REG_GLOBALCURRENT 0x01 // PG3
#define IS31FL3736_REG_RESET 0x11 // PG3
#define IS31FL3736_REG_SWPULLUP 0x0F // PG3
#define IS31FL3736_REG_CSPULLUP 0x10 // PG3
#define IS31FL3736_REG_SW_PULLUP 0x0F // PG3
#define IS31FL3736_REG_CS_PULLDOWN 0x10 // PG3

#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96
#define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24
Expand All @@ -51,12 +51,12 @@
# define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only
#endif

#ifndef IS31FL3736_SWPULLUP
# define IS31FL3736_SWPULLUP IS31FL3736_PUR_0R
#ifndef IS31FL3736_SW_PULLUP
# define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM
#endif

#ifndef IS31FL3736_CSPULLUP
# define IS31FL3736_CSPULLUP IS31FL3736_PUR_0R
#ifndef IS31FL3736_CS_PULLDOWN
# define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM
#endif

#ifndef IS31FL3736_GLOBALCURRENT
Expand Down Expand Up @@ -178,9 +178,9 @@ void is31fl3736_init(uint8_t addr) {
// Select PG3
is31fl3736_write_register(addr, IS31FL3736_COMMANDREGISTER, IS31FL3736_PAGE_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
is31fl3736_write_register(addr, IS31FL3736_REG_SWPULLUP, IS31FL3736_SWPULLUP);
is31fl3736_write_register(addr, IS31FL3736_REG_SW_PULLUP, IS31FL3736_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
is31fl3736_write_register(addr, IS31FL3736_REG_CSPULLUP, IS31FL3736_CSPULLUP);
is31fl3736_write_register(addr, IS31FL3736_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN);
// Set global current to maximum.
is31fl3736_write_register(addr, IS31FL3736_REG_GLOBALCURRENT, IS31FL3736_GLOBALCURRENT);
// Disable software shutdown.
Expand Down
Loading

0 comments on commit 35061dc

Please sign in to comment.