LED drivers: add support for shutdown pin (#23058)

* LED drivers: add support for shutdown pin

* Update candidate boards
This commit is contained in:
Ryan
2024-02-15 18:11:50 +11:00
committed by GitHub
parent 0b7df03ab7
commit a9f1105f98
63 changed files with 164 additions and 159 deletions
+6
View File
@@ -16,6 +16,7 @@
#include "is31fl3218-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#define IS31FL3218_PWM_REGISTER_COUNT 18
#define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3
@@ -66,6 +67,11 @@ void is31fl3218_write_pwm_buffer(void) {
void is31fl3218_init(void) {
i2c_init();
#if defined(IS31FL3218_SDB_PIN)
setPinOutput(IS31FL3218_SDB_PIN);
writePinHigh(IS31FL3218_SDB_PIN);
#endif
// In case we ever want to reinitialize (?)
is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00);
+6
View File
@@ -16,6 +16,7 @@
#include "is31fl3218.h"
#include "i2c_master.h"
#include "gpio.h"
#define IS31FL3218_PWM_REGISTER_COUNT 18
#define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3
@@ -66,6 +67,11 @@ void is31fl3218_write_pwm_buffer(void) {
void is31fl3218_init(void) {
i2c_init();
#if defined(IS31FL3218_SDB_PIN)
setPinOutput(IS31FL3218_SDB_PIN);
writePinHigh(IS31FL3218_SDB_PIN);
#endif
// In case we ever want to reinitialize (?)
is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00);
+6
View File
@@ -19,6 +19,7 @@
#include "is31fl3731-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3731_PWM_REGISTER_COUNT 144
@@ -97,6 +98,11 @@ void is31fl3731_write_pwm_buffer(uint8_t index) {
void is31fl3731_init_drivers(void) {
i2c_init();
#if defined(IS31FL3731_SDB_PIN)
setPinOutput(IS31FL3731_SDB_PIN);
writePinHigh(IS31FL3731_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3731_DRIVER_COUNT; i++) {
is31fl3731_init(i);
}
+6
View File
@@ -18,6 +18,7 @@
#include "is31fl3731.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3731_PWM_REGISTER_COUNT 144
@@ -96,6 +97,11 @@ void is31fl3731_write_pwm_buffer(uint8_t index) {
void is31fl3731_init_drivers(void) {
i2c_init();
#if defined(IS31FL3731_SDB_PIN)
setPinOutput(IS31FL3731_SDB_PIN);
writePinHigh(IS31FL3731_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3731_DRIVER_COUNT; i++) {
is31fl3731_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3733-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3733_PWM_REGISTER_COUNT 192
@@ -142,6 +143,11 @@ void is31fl3733_write_pwm_buffer(uint8_t index) {
void is31fl3733_init_drivers(void) {
i2c_init();
#if defined(IS31FL3733_SDB_PIN)
setPinOutput(IS31FL3733_SDB_PIN);
writePinHigh(IS31FL3733_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3733_DRIVER_COUNT; i++) {
is31fl3733_init(i);
}
+6
View File
@@ -19,6 +19,7 @@
#include "is31fl3733.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3733_PWM_REGISTER_COUNT 192
@@ -141,6 +142,11 @@ void is31fl3733_write_pwm_buffer(uint8_t index) {
void is31fl3733_init_drivers(void) {
i2c_init();
#if defined(IS31FL3733_SDB_PIN)
setPinOutput(IS31FL3733_SDB_PIN);
writePinHigh(IS31FL3733_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3733_DRIVER_COUNT; i++) {
is31fl3733_init(i);
}
+6
View File
@@ -17,6 +17,7 @@
#include "is31fl3736-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96
@@ -113,6 +114,11 @@ void is31fl3736_write_pwm_buffer(uint8_t index) {
void is31fl3736_init_drivers(void) {
i2c_init();
#if defined(IS31FL3736_SDB_PIN)
setPinOutput(IS31FL3736_SDB_PIN);
writePinHigh(IS31FL3736_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3736_DRIVER_COUNT; i++) {
is31fl3736_init(i);
}
+6
View File
@@ -17,6 +17,7 @@
#include "is31fl3736.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96
@@ -113,6 +114,11 @@ void is31fl3736_write_pwm_buffer(uint8_t index) {
void is31fl3736_init_drivers(void) {
i2c_init();
#if defined(IS31FL3736_SDB_PIN)
setPinOutput(IS31FL3736_SDB_PIN);
writePinHigh(IS31FL3736_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3736_DRIVER_COUNT; i++) {
is31fl3736_init(i);
}
+6
View File
@@ -19,6 +19,7 @@
#include "is31fl3737-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144
@@ -115,6 +116,11 @@ void is31fl3737_write_pwm_buffer(uint8_t index) {
void is31fl3737_init_drivers(void) {
i2c_init();
#if defined(IS31FL3737_SDB_PIN)
setPinOutput(IS31FL3737_SDB_PIN);
writePinHigh(IS31FL3737_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3737_DRIVER_COUNT; i++) {
is31fl3737_init(i);
}
+6
View File
@@ -19,6 +19,7 @@
#include "is31fl3737.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144
@@ -115,6 +116,11 @@ void is31fl3737_write_pwm_buffer(uint8_t index) {
void is31fl3737_init_drivers(void) {
i2c_init();
#if defined(IS31FL3737_SDB_PIN)
setPinOutput(IS31FL3737_SDB_PIN);
writePinHigh(IS31FL3737_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3737_DRIVER_COUNT; i++) {
is31fl3737_init(i);
}
+6
View File
@@ -19,6 +19,7 @@
#include "is31fl3741-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3741_PWM_0_REGISTER_COUNT 180
@@ -141,6 +142,11 @@ void is31fl3741_write_pwm_buffer(uint8_t index) {
void is31fl3741_init_drivers(void) {
i2c_init();
#if defined(IS31FL3741_SDB_PIN)
setPinOutput(IS31FL3741_SDB_PIN);
writePinHigh(IS31FL3741_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3741_DRIVER_COUNT; i++) {
is31fl3741_init(i);
}
+6
View File
@@ -19,6 +19,7 @@
#include "is31fl3741.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3741_PWM_0_REGISTER_COUNT 180
@@ -141,6 +142,11 @@ void is31fl3741_write_pwm_buffer(uint8_t index) {
void is31fl3741_init_drivers(void) {
i2c_init();
#if defined(IS31FL3741_SDB_PIN)
setPinOutput(IS31FL3741_SDB_PIN);
writePinHigh(IS31FL3741_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3741_DRIVER_COUNT; i++) {
is31fl3741_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3742a-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3742A_PWM_REGISTER_COUNT 180
@@ -114,6 +115,11 @@ void is31fl3742a_write_pwm_buffer(uint8_t index) {
void is31fl3742a_init_drivers(void) {
i2c_init();
#if defined(IS31FL3742A_SDB_PIN)
setPinOutput(IS31FL3742A_SDB_PIN);
writePinHigh(IS31FL3742A_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3742A_DRIVER_COUNT; i++) {
is31fl3742a_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3742a.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3742A_PWM_REGISTER_COUNT 180
@@ -114,6 +115,11 @@ void is31fl3742a_write_pwm_buffer(uint8_t index) {
void is31fl3742a_init_drivers(void) {
i2c_init();
#if defined(IS31FL3742A_SDB_PIN)
setPinOutput(IS31FL3742A_SDB_PIN);
writePinHigh(IS31FL3742A_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3742A_DRIVER_COUNT; i++) {
is31fl3742a_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3743a-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3743A_PWM_REGISTER_COUNT 198
@@ -136,6 +137,11 @@ void is31fl3743a_write_pwm_buffer(uint8_t index) {
void is31fl3743a_init_drivers(void) {
i2c_init();
#if defined(IS31FL3743A_SDB_PIN)
setPinOutput(IS31FL3743A_SDB_PIN);
writePinHigh(IS31FL3743A_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3743A_DRIVER_COUNT; i++) {
is31fl3743a_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3743a.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3743A_PWM_REGISTER_COUNT 198
@@ -136,6 +137,11 @@ void is31fl3743a_write_pwm_buffer(uint8_t index) {
void is31fl3743a_init_drivers(void) {
i2c_init();
#if defined(IS31FL3743A_SDB_PIN)
setPinOutput(IS31FL3743A_SDB_PIN);
writePinHigh(IS31FL3743A_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3743A_DRIVER_COUNT; i++) {
is31fl3743a_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3745-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3745_PWM_REGISTER_COUNT 144
@@ -136,6 +137,11 @@ void is31fl3745_write_pwm_buffer(uint8_t index) {
void is31fl3745_init_drivers(void) {
i2c_init();
#if defined(IS31FL3745_SDB_PIN)
setPinOutput(IS31FL3745_SDB_PIN);
writePinHigh(IS31FL3745_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3745_DRIVER_COUNT; i++) {
is31fl3745_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3745.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3745_PWM_REGISTER_COUNT 144
@@ -136,6 +137,11 @@ void is31fl3745_write_pwm_buffer(uint8_t index) {
void is31fl3745_init_drivers(void) {
i2c_init();
#if defined(IS31FL3745_SDB_PIN)
setPinOutput(IS31FL3745_SDB_PIN);
writePinHigh(IS31FL3745_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3745_DRIVER_COUNT; i++) {
is31fl3745_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3746a-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3746A_PWM_REGISTER_COUNT 72
@@ -114,6 +115,11 @@ void is31fl3746a_write_pwm_buffer(uint8_t index) {
void is31fl3746a_init_drivers(void) {
i2c_init();
#if defined(IS31FL3746A_SDB_PIN)
setPinOutput(IS31FL3746A_SDB_PIN);
writePinHigh(IS31FL3746A_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3746A_DRIVER_COUNT; i++) {
is31fl3746a_init(i);
}
+6
View File
@@ -20,6 +20,7 @@
#include "is31fl3746a.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3746A_PWM_REGISTER_COUNT 72
@@ -114,6 +115,11 @@ void is31fl3746a_write_pwm_buffer(uint8_t index) {
void is31fl3746a_init_drivers(void) {
i2c_init();
#if defined(IS31FL3746A_SDB_PIN)
setPinOutput(IS31FL3746A_SDB_PIN);
writePinHigh(IS31FL3746A_SDB_PIN);
#endif
for (uint8_t i = 0; i < IS31FL3746A_DRIVER_COUNT; i++) {
is31fl3746a_init(i);
}
+6
View File
@@ -16,6 +16,7 @@
#include "snled27351-mono.h"
#include "i2c_master.h"
#include "gpio.h"
#define SNLED27351_PWM_REGISTER_COUNT 192
#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24
@@ -103,6 +104,11 @@ void snled27351_write_pwm_buffer(uint8_t index) {
void snled27351_init_drivers(void) {
i2c_init();
#if defined(SNLED27351_SDB_PIN)
setPinOutput(SNLED27351_SDB_PIN);
writePinHigh(SNLED27351_SDB_PIN);
#endif
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++) {
snled27351_init(i);
}
+6
View File
@@ -16,6 +16,7 @@
#include "snled27351.h"
#include "i2c_master.h"
#include "gpio.h"
#define SNLED27351_PWM_REGISTER_COUNT 192
#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24
@@ -103,6 +104,11 @@ void snled27351_write_pwm_buffer(uint8_t index) {
void snled27351_init_drivers(void) {
i2c_init();
#if defined(SNLED27351_SDB_PIN)
setPinOutput(SNLED27351_SDB_PIN);
writePinHigh(SNLED27351_SDB_PIN);
#endif
for (uint8_t i = 0; i < SNLED27351_DRIVER_COUNT; i++) {
snled27351_init(i);
}
+1
View File
@@ -5,3 +5,4 @@
#pragma once
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_SDB_PIN D5
-6
View File
@@ -1,12 +1,6 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
void matrix_init_kb(void) {
setPinOutput(D5);
writePinHigh(D5);
matrix_init_user();
}
const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
@@ -44,6 +44,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* LED matrix driver */
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_SDB_PIN B16
/* i2c (for LED matrix) */
#define I2C1_CLOCK_SPEED 400000
@@ -95,11 +95,6 @@ __attribute__ ((weak)) void matrix_scan_user(void) {}
void keyboard_pre_init_kb(void) {
#ifdef LED_MATRIX_ENABLE
// Turn on LED controller
setPinOutput(B16);
writePinHigh(B16);
#endif
// The backlight always has to be initialized, otherwise it will stay lit
lcd_backlight_hal_init();
#ifdef ST7565_ENABLE
+1
View File
@@ -50,3 +50,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND
#define IS31FL3733_SDB_PIN B16
@@ -18,6 +18,7 @@
#include "is31fl3733-dual.h"
#include "i2c_master.h"
#include "gpio.h"
#include "wait.h"
#define IS31FL3733_PWM_REGISTER_COUNT 192
@@ -126,6 +127,11 @@ void is31fl3733_write_pwm_buffer(uint8_t bus, uint8_t index) {
}
void is31fl3733_init_drivers(void) {
#if defined(IS31FL3733_SDB_PIN)
setPinOutput(IS31FL3733_SDB_PIN);
writePinHigh(IS31FL3733_SDB_PIN);
#endif
i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN);
is31fl3733_init(0, 0);
-8
View File
@@ -201,14 +201,6 @@ led_config_t g_led_config = {
}
};
void keyboard_pre_init_kb(void) {
// Turn on LED controller
setPinOutput(B16);
writePinHigh(B16);
keyboard_pre_init_user();
}
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
+1
View File
@@ -22,6 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* LED matrix driver */
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_SDB_PIN B16
/* i2c (for LED matrix) */
#define I2C1_CLOCK_SPEED 400000

Some files were not shown because too many files have changed in this diff Show More