diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 5ac392c6a9..d08b3751fc 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -352,9 +352,12 @@ endif ifeq ($(strip $(LED_MATRIX_DRIVER)), aw20216) LED_MATRIX_DRIVER := aw20216s endif +ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) +LED_MATRIX_DRIVER := snled27351 +endif LED_MATRIX_ENABLE ?= no -VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom +VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom ifeq ($(strip $(LED_MATRIX_ENABLE)), yes) ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),) @@ -446,10 +449,10 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001) + ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led - SRC += ckled2001-simple.c + SRC += snled27351-simple.c QUANTUM_LIB_SRC += i2c_master.c endif @@ -459,10 +462,13 @@ endif ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216) RGB_MATRIX_DRIVER := aw20216s endif +ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001) +RGB_MATRIX_DRIVER := snled27351 +endif RGB_MATRIX_ENABLE ?= no -VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom +VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type) @@ -561,10 +567,10 @@ endif QUANTUM_LIB_SRC += i2c_master.c endif - ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001) + ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351) OPT_DEFS += -DHAL_USE_I2C=TRUE COMMON_VPATH += $(DRIVER_PATH)/led - SRC += ckled2001.c + SRC += snled27351.c QUANTUM_LIB_SRC += i2c_master.c endif diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 7e5f11b7a7..f31d3c4a2f 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -329,7 +329,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`. + * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`. * `layout` (Required) * List of LED configuration dictionaries. Each dictionary contains: * `flags` (Required) @@ -542,7 +542,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature. * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` * `driver` (Required) - * The driver to use. Must be one of `aw20216s`, `ckled2001`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`. + * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. * `hue_steps` * The number of hue adjustment steps. * Default: `8` diff --git a/drivers/led/ckled2001-simple.c b/drivers/led/ckled2001-simple.c deleted file mode 100644 index 936b915af8..0000000000 --- a/drivers/led/ckled2001-simple.c +++ /dev/null @@ -1,220 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ckled2001-simple.h" -#include "i2c_master.h" - -#ifndef CKLED2001_I2C_TIMEOUT -# define CKLED2001_I2C_TIMEOUT 100 -#endif - -#ifndef CKLED2001_I2C_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE 0 -#endif - -#ifndef CKLED2001_PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#endif - -#ifndef CKLED2001_CURRENT_TUNE -# define CKLED2001_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } -#endif - -// Transfer buffer for TWITransmitData() -uint8_t g_twi_transfer_buffer[20]; - -// These buffers match the CKLED2001 PWM registers. -// The control buffers match the PG0 LED On/Off registers. -// Storing them like this is optimal for I2C transfers to the registers. -// We could optimize this and take out the unused registers from these -// buffers and the transfers in ckled2001_write_pwm_buffer() but it's -// probably not worth the extra complexity. -uint8_t g_pwm_buffer[CKLED2001_DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -uint8_t g_led_control_registers[CKLED2001_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { - // If the transaction fails function returns false. - g_twi_transfer_buffer[0] = reg; - g_twi_transfer_buffer[1] = data; - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - return true; -} - -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { - // Assumes PG1 is already selected. - // If any of the transactions fails function returns false. - // Transmit PWM registers in 12 transfers of 16 bytes. - // g_twi_transfer_buffer[] is 20 bytes - - // Iterate over the pwm_buffer contents at 16 byte intervals. - for (int i = 0; i < 192; i += 16) { - g_twi_transfer_buffer[0] = i; - // Copy the data from i to i+15. - // Device will auto-increment register for data after the first byte - // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. - for (int j = 0; j < 16; j++) { - g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; - } - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - } - return true; -} - -void ckled2001_init(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Setting internal channel pulldown/pullup - ckled2001_write_register(addr, CKLED2001_REG_PDU, CKLED2001_MSKSET_CA_CB_CHANNEL); - // Select number of scan phase - ckled2001_write_register(addr, CKLED2001_REG_SCAN_PHASE, CKLED2001_PHASE_CHANNEL); - // Setting PWM Delay Phase - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE1, CKLED2001_MSKPWM_DELAY_PHASE_ENABLE); - // Setting Driving/Sinking Channel Slew Rate - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE2, CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); - // Setting Iref - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_DISABLE); - // Set LED CONTROL PAGE (Page 0) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set PWM PAGE (Page 1) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set CURRENT PAGE (Page 4) - uint8_t current_tune_reg_list[CKLED2001_LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_CURRENT_TUNE_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, current_tune_reg_list[i]); - } - - // Enable LEDs ON/OFF - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0xFF); - } - - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_set_value(int index, uint8_t value) { - ckled2001_led led; - if (index >= 0 && index < LED_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - if (g_pwm_buffer[led.driver][led.v] == value) { - return; - } - g_pwm_buffer[led.driver][led.v] = value; - g_pwm_buffer_update_required[led.driver] = true; - } -} - -void ckled2001_set_value_all(uint8_t value) { - for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { - ckled2001_set_value(i, value); - } -} - -void ckled2001_set_led_control_register(uint8_t index, bool value) { - ckled2001_led led; - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - uint8_t control_register = led.v / 8; - uint8_t bit_value = led.v % 8; - - if (value) { - g_led_control_registers[led.driver][control_register] |= (1 << bit_value); - } else { - g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); - } - - g_led_control_registers_update_required[led.driver] = true; -} - -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { - if (g_pwm_buffer_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - - // If any of the transactions fail we risk writing dirty PG0, - // refresh page 0 just in case. - if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { - g_led_control_registers_update_required[index] = true; - } - } - g_pwm_buffer_update_required[index] = false; -} - -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { - if (g_led_control_registers_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < 24; i++) { - ckled2001_write_register(addr, i, g_led_control_registers[index][i]); - } - } - g_led_control_registers_update_required[index] = false; -} - -void ckled2001_sw_return_normal(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_sw_shutdown(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Write SW Sleep Register - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_ENABLE); -} diff --git a/drivers/led/ckled2001-simple.h b/drivers/led/ckled2001-simple.h deleted file mode 100644 index 1080da34c2..0000000000 --- a/drivers/led/ckled2001-simple.h +++ /dev/null @@ -1,370 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include "progmem.h" - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define CKLED2001_DRIVER_COUNT DRIVER_COUNT -#endif -#ifdef CKLED2001_TIMEOUT -# define CKLED2001_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL PHASE_CHANNEL -#endif - -#define MSKPHASE_12CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#define MSKPHASE_11CHANNEL CKLED2001_MSKPHASE_11CHANNEL -#define MSKPHASE_10CHANNEL CKLED2001_MSKPHASE_10CHANNEL -#define MSKPHASE_9CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define MSKPHASE_8CHANNEL CKLED2001_MSKPHASE_8CHANNEL -#define MSKPHASE_7CHANNEL CKLED2001_MSKPHASE_7CHANNEL -#define MSKPHASE_6CHANNEL CKLED2001_MSKPHASE_6CHANNEL -#define MSKPHASE_5CHANNEL CKLED2001_MSKPHASE_5CHANNEL -#define MSKPHASE_4CHANNEL CKLED2001_MSKPHASE_4CHANNEL -#define MSKPHASE_3CHANNEL CKLED2001_MSKPHASE_3CHANNEL -#define MSKPHASE_2CHANNEL CKLED2001_MSKPHASE_2CHANNEL -#define MSKPHASE_1CHANNEL CKLED2001_MSKPHASE_1CHANNEL -// ======== - -#define CKLED2001_I2C_ADDRESS_GND 0x74 -#define CKLED2001_I2C_ADDRESS_SCL 0x75 -#define CKLED2001_I2C_ADDRESS_SDA 0x76 -#define CKLED2001_I2C_ADDRESS_VDDIO 0x77 - -typedef struct ckled2001_led { - uint8_t driver : 2; - uint8_t v; -} __attribute__((packed)) ckled2001_led; - -extern const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT]; - -void ckled2001_init(uint8_t addr); -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); - -void ckled2001_set_value(int index, uint8_t value); -void ckled2001_set_value_all(uint8_t value); - -void ckled2001_set_led_control_register(uint8_t index, bool value); - -// This should not be called from an interrupt -// (eg. from a timer interrupt). -// Call this while idle (in between matrix scans). -// If the buffer is dirty, it will update the driver with the buffer. -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index); -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index); - -void ckled2001_sw_return_normal(uint8_t addr); -void ckled2001_sw_shutdown(uint8_t addr); - -// Registers Page Define -#define CKLED2001_REG_CONFIGURE_CMD_PAGE 0xFD -#define CKLED2001_LED_CONTROL_PAGE 0x00 -#define CKLED2001_LED_PWM_PAGE 0x01 -#define CKLED2001_FUNCTION_PAGE 0x03 -#define CKLED2001_CURRENT_TUNE_PAGE 0x04 - -// Function Register: address 0x00 -#define CKLED2001_REG_CONFIGURATION 0x00 -#define CKLED2001_MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define CKLED2001_MSKSW_NORMAL_MODE (0x1 << 0) - -#define CKLED2001_REG_DRIVER_ID 0x11 -#define CKLED2001_DRIVER_ID 0x8A - -#define CKLED2001_REG_PDU 0x13 -#define CKLED2001_MSKSET_CA_CB_CHANNEL 0xAA -#define CKLED2001_MSKCLR_CA_CB_CHANNEL 0x00 - -#define CKLED2001_REG_SCAN_PHASE 0x14 -#define CKLED2001_MSKPHASE_12CHANNEL 0x00 -#define CKLED2001_MSKPHASE_11CHANNEL 0x01 -#define CKLED2001_MSKPHASE_10CHANNEL 0x02 -#define CKLED2001_MSKPHASE_9CHANNEL 0x03 -#define CKLED2001_MSKPHASE_8CHANNEL 0x04 -#define CKLED2001_MSKPHASE_7CHANNEL 0x05 -#define CKLED2001_MSKPHASE_6CHANNEL 0x06 -#define CKLED2001_MSKPHASE_5CHANNEL 0x07 -#define CKLED2001_MSKPHASE_4CHANNEL 0x08 -#define CKLED2001_MSKPHASE_3CHANNEL 0x09 -#define CKLED2001_MSKPHASE_2CHANNEL 0x0A -#define CKLED2001_MSKPHASE_1CHANNEL 0x0B - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE1 0x15 -#define CKLED2001_MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define CKLED2001_MSKPWM_DELAY_PHASE_DISABLE 0x00 - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE2 0x16 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 - -#define CKLED2001_REG_OPEN_SHORT_ENABLE 0x17 -#define CKLED2001_MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_DISABLE (0x00) - -#define CKLED2001_REG_OPEN_SHORT_DUTY 0x18 -#define CKLED2001_REG_OPEN_SHORT_FLAG 0x19 - -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_REG_SOFTWARE_SLEEP 0x1A -#define CKLED2001_MSKSLEEP_ENABLE 0x02 -#define CKLED2001_MSKSLEEP_DISABLE 0x00 - -// LED Control Registers -#define CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define CKLED2001_LED_CONTROL_ON_OFF_LENGTH ((CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR - CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define CKLED2001_LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define CKLED2001_LED_CONTROL_OPEN_LENGTH ((CKLED2001_LED_CONTROL_OPEN_LAST_ADDR - CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define CKLED2001_LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define CKLED2001_LED_CONTROL_SHORT_LENGTH ((CKLED2001_LED_CONTROL_SHORT_LAST_ADDR - CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_PAGE_LENGTH 0x48 - -// LED Control Registers -#define CKLED2001_LED_PWM_FIRST_ADDR 0x00 -#define CKLED2001_LED_PWM_LAST_ADDR 0xBF -#define CKLED2001_LED_PWM_LENGTH 0xC0 - -// Current Tune Registers -#define CKLED2001_LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define CKLED2001_LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define CKLED2001_LED_CURRENT_TUNE_LENGTH 0x0C - -#define A_1 0x00 -#define A_2 0x01 -#define A_3 0x02 -#define A_4 0x03 -#define A_5 0x04 -#define A_6 0x05 -#define A_7 0x06 -#define A_8 0x07 -#define A_9 0x08 -#define A_10 0x09 -#define A_11 0x0A -#define A_12 0x0B -#define A_13 0x0C -#define A_14 0x0D -#define A_15 0x0E -#define A_16 0x0F - -#define B_1 0x10 -#define B_2 0x11 -#define B_3 0x12 -#define B_4 0x13 -#define B_5 0x14 -#define B_6 0x15 -#define B_7 0x16 -#define B_8 0x17 -#define B_9 0x18 -#define B_10 0x19 -#define B_11 0x1A -#define B_12 0x1B -#define B_13 0x1C -#define B_14 0x1D -#define B_15 0x1E -#define B_16 0x1F - -#define C_1 0x20 -#define C_2 0x21 -#define C_3 0x22 -#define C_4 0x23 -#define C_5 0x24 -#define C_6 0x25 -#define C_7 0x26 -#define C_8 0x27 -#define C_9 0x28 -#define C_10 0x29 -#define C_11 0x2A -#define C_12 0x2B -#define C_13 0x2C -#define C_14 0x2D -#define C_15 0x2E -#define C_16 0x2F - -#define D_1 0x30 -#define D_2 0x31 -#define D_3 0x32 -#define D_4 0x33 -#define D_5 0x34 -#define D_6 0x35 -#define D_7 0x36 -#define D_8 0x37 -#define D_9 0x38 -#define D_10 0x39 -#define D_11 0x3A -#define D_12 0x3B -#define D_13 0x3C -#define D_14 0x3D -#define D_15 0x3E -#define D_16 0x3F - -#define E_1 0x40 -#define E_2 0x41 -#define E_3 0x42 -#define E_4 0x43 -#define E_5 0x44 -#define E_6 0x45 -#define E_7 0x46 -#define E_8 0x47 -#define E_9 0x48 -#define E_10 0x49 -#define E_11 0x4A -#define E_12 0x4B -#define E_13 0x4C -#define E_14 0x4D -#define E_15 0x4E -#define E_16 0x4F - -#define F_1 0x50 -#define F_2 0x51 -#define F_3 0x52 -#define F_4 0x53 -#define F_5 0x54 -#define F_6 0x55 -#define F_7 0x56 -#define F_8 0x57 -#define F_9 0x58 -#define F_10 0x59 -#define F_11 0x5A -#define F_12 0x5B -#define F_13 0x5C -#define F_14 0x5D -#define F_15 0x5E -#define F_16 0x5F - -#define G_1 0x60 -#define G_2 0x61 -#define G_3 0x62 -#define G_4 0x63 -#define G_5 0x64 -#define G_6 0x65 -#define G_7 0x66 -#define G_8 0x67 -#define G_9 0x68 -#define G_10 0x69 -#define G_11 0x6A -#define G_12 0x6B -#define G_13 0x6C -#define G_14 0x6D -#define G_15 0x6E -#define G_16 0x6F - -#define H_1 0x70 -#define H_2 0x71 -#define H_3 0x72 -#define H_4 0x73 -#define H_5 0x74 -#define H_6 0x75 -#define H_7 0x76 -#define H_8 0x77 -#define H_9 0x78 -#define H_10 0x79 -#define H_11 0x7A -#define H_12 0x7B -#define H_13 0x7C -#define H_14 0x7D -#define H_15 0x7E -#define H_16 0x7F - -#define I_1 0x80 -#define I_2 0x81 -#define I_3 0x82 -#define I_4 0x83 -#define I_5 0x84 -#define I_6 0x85 -#define I_7 0x86 -#define I_8 0x87 -#define I_9 0x88 -#define I_10 0x89 -#define I_11 0x8A -#define I_12 0x8B -#define I_13 0x8C -#define I_14 0x8D -#define I_15 0x8E -#define I_16 0x8F - -#define J_1 0x90 -#define J_2 0x91 -#define J_3 0x92 -#define J_4 0x93 -#define J_5 0x94 -#define J_6 0x95 -#define J_7 0x96 -#define J_8 0x97 -#define J_9 0x98 -#define J_10 0x99 -#define J_11 0x9A -#define J_12 0x9B -#define J_13 0x9C -#define J_14 0x9D -#define J_15 0x9E -#define J_16 0x9F - -#define K_1 0xA0 -#define K_2 0xA1 -#define K_3 0xA2 -#define K_4 0xA3 -#define K_5 0xA4 -#define K_6 0xA5 -#define K_7 0xA6 -#define K_8 0xA7 -#define K_9 0xA8 -#define K_10 0xA9 -#define K_11 0xAA -#define K_12 0xAB -#define K_13 0xAC -#define K_14 0xAD -#define K_15 0xAE -#define K_16 0xAF - -#define L_1 0xB0 -#define L_2 0xB1 -#define L_3 0xB2 -#define L_4 0xB3 -#define L_5 0xB4 -#define L_6 0xB5 -#define L_7 0xB6 -#define L_8 0xB7 -#define L_9 0xB8 -#define L_10 0xB9 -#define L_11 0xBA -#define L_12 0xBB -#define L_13 0xBC -#define L_14 0xBD -#define L_15 0xBE -#define L_16 0xBF diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c deleted file mode 100644 index 8340aae823..0000000000 --- a/drivers/led/ckled2001.c +++ /dev/null @@ -1,235 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "ckled2001.h" -#include "i2c_master.h" - -#ifndef CKLED2001_I2C_TIMEOUT -# define CKLED2001_I2C_TIMEOUT 100 -#endif - -#ifndef CKLED2001_I2C_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE 0 -#endif - -#ifndef CKLED2001_PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#endif - -#ifndef CKLED2001_CURRENT_TUNE -# define CKLED2001_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } -#endif - -// Transfer buffer for TWITransmitData() -uint8_t g_twi_transfer_buffer[65]; - -// These buffers match the CKLED2001 PWM registers. -// The control buffers match the PG0 LED On/Off registers. -// Storing them like this is optimal for I2C transfers to the registers. -// We could optimize this and take out the unused registers from these -// buffers and the transfers in ckled2001_write_pwm_buffer() but it's -// probably not worth the extra complexity. -uint8_t g_pwm_buffer[CKLED2001_DRIVER_COUNT][192]; -bool g_pwm_buffer_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -uint8_t g_led_control_registers[CKLED2001_DRIVER_COUNT][24] = {0}; -bool g_led_control_registers_update_required[CKLED2001_DRIVER_COUNT] = {false}; - -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) { - // If the transaction fails function returns false. - g_twi_transfer_buffer[0] = reg; - g_twi_transfer_buffer[1] = data; - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - return true; -} - -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { - // Assumes PG1 is already selected. - // If any of the transactions fails function returns false. - // Transmit PWM registers in 3 transfers of 64 bytes. - - // Iterate over the pwm_buffer contents at 64 byte intervals. - for (uint8_t i = 0; i < 192; i += 64) { - g_twi_transfer_buffer[0] = i; - // Copy the data from i to i+63. - // Device will auto-increment register for data after the first byte - // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. - for (uint8_t j = 0; j < 64; j++) { - g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; - } - -#if CKLED2001_I2C_PERSISTENCE > 0 - for (uint8_t i = 0; i < CKLED2001_I2C_PERSISTENCE; i++) { - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } - } -#else - if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_I2C_TIMEOUT) != 0) { - return false; - } -#endif - } - return true; -} - -void ckled2001_init(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Setting internal channel pulldown/pullup - ckled2001_write_register(addr, CKLED2001_REG_PDU, CKLED2001_MSKSET_CA_CB_CHANNEL); - // Select number of scan phase - ckled2001_write_register(addr, CKLED2001_REG_SCAN_PHASE, CKLED2001_PHASE_CHANNEL); - // Setting PWM Delay Phase - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE1, CKLED2001_MSKPWM_DELAY_PHASE_ENABLE); - // Setting Driving/Sinking Channel Slew Rate - ckled2001_write_register(addr, CKLED2001_REG_SLEW_RATE_CONTROL_MODE2, CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); - // Setting Iref - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_DISABLE); - // Set LED CONTROL PAGE (Page 0) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set PWM PAGE (Page 1) - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, 0x00); - } - - // Set CURRENT PAGE (Page 4) - uint8_t current_tune_reg_list[CKLED2001_LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE; - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_CURRENT_TUNE_PAGE); - for (int i = 0; i < CKLED2001_LED_CURRENT_TUNE_LENGTH; i++) { - ckled2001_write_register(addr, i, current_tune_reg_list[i]); - } - - // Enable LEDs ON/OFF - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < CKLED2001_LED_CONTROL_ON_OFF_LENGTH; i++) { - ckled2001_write_register(addr, i, 0xFF); - } - - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - ckled2001_led led; - if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { - return; - } - g_pwm_buffer[led.driver][led.r] = red; - g_pwm_buffer[led.driver][led.g] = green; - g_pwm_buffer[led.driver][led.b] = blue; - g_pwm_buffer_update_required[led.driver] = true; - } -} - -void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { - for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { - ckled2001_set_color(i, red, green, blue); - } -} - -void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { - ckled2001_led led; - memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led)); - - uint8_t control_register_r = led.r / 8; - uint8_t control_register_g = led.g / 8; - uint8_t control_register_b = led.b / 8; - uint8_t bit_r = led.r % 8; - uint8_t bit_g = led.g % 8; - uint8_t bit_b = led.b % 8; - - if (red) { - g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); - } else { - g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r); - } - if (green) { - g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g); - } else { - g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g); - } - if (blue) { - g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b); - } else { - g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); - } - - g_led_control_registers_update_required[led.driver] = true; -} - -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) { - if (g_pwm_buffer_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_PWM_PAGE); - - // If any of the transactions fail we risk writing dirty PG0, - // refresh page 0 just in case. - if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) { - g_led_control_registers_update_required[index] = true; - } - } - g_pwm_buffer_update_required[index] = false; -} - -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) { - if (g_led_control_registers_update_required[index]) { - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_LED_CONTROL_PAGE); - for (int i = 0; i < 24; i++) { - ckled2001_write_register(addr, i, g_led_control_registers[index][i]); - } - } - g_led_control_registers_update_required[index] = false; -} - -void ckled2001_sw_return_normal(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to normal mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_NORMAL_MODE); -} - -void ckled2001_sw_shutdown(uint8_t addr) { - // Select to function page - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURE_CMD_PAGE, CKLED2001_FUNCTION_PAGE); - // Setting LED driver to shutdown mode - ckled2001_write_register(addr, CKLED2001_REG_CONFIGURATION, CKLED2001_MSKSW_SHUT_DOWN_MODE); - // Write SW Sleep Register - ckled2001_write_register(addr, CKLED2001_REG_SOFTWARE_SLEEP, CKLED2001_MSKSLEEP_ENABLE); -} diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h deleted file mode 100644 index 257efbb6a1..0000000000 --- a/drivers/led/ckled2001.h +++ /dev/null @@ -1,372 +0,0 @@ -/* Copyright 2021 @ Keychron (https://www.keychron.com) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include "progmem.h" - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_COUNT -# define CKLED2001_DRIVER_COUNT DRIVER_COUNT -#endif -#ifdef CKLED2001_TIMEOUT -# define CKLED2001_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define CKLED2001_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define CKLED2001_PHASE_CHANNEL PHASE_CHANNEL -#endif - -#define MSKPHASE_12CHANNEL CKLED2001_MSKPHASE_12CHANNEL -#define MSKPHASE_11CHANNEL CKLED2001_MSKPHASE_11CHANNEL -#define MSKPHASE_10CHANNEL CKLED2001_MSKPHASE_10CHANNEL -#define MSKPHASE_9CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define MSKPHASE_8CHANNEL CKLED2001_MSKPHASE_8CHANNEL -#define MSKPHASE_7CHANNEL CKLED2001_MSKPHASE_7CHANNEL -#define MSKPHASE_6CHANNEL CKLED2001_MSKPHASE_6CHANNEL -#define MSKPHASE_5CHANNEL CKLED2001_MSKPHASE_5CHANNEL -#define MSKPHASE_4CHANNEL CKLED2001_MSKPHASE_4CHANNEL -#define MSKPHASE_3CHANNEL CKLED2001_MSKPHASE_3CHANNEL -#define MSKPHASE_2CHANNEL CKLED2001_MSKPHASE_2CHANNEL -#define MSKPHASE_1CHANNEL CKLED2001_MSKPHASE_1CHANNEL -// ======== - -#define CKLED2001_I2C_ADDRESS_GND 0x74 -#define CKLED2001_I2C_ADDRESS_SCL 0x75 -#define CKLED2001_I2C_ADDRESS_SDA 0x76 -#define CKLED2001_I2C_ADDRESS_VDDIO 0x77 - -typedef struct ckled2001_led { - uint8_t driver : 2; - uint8_t r; - uint8_t g; - uint8_t b; -} __attribute__((packed)) ckled2001_led; - -extern const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT]; - -void ckled2001_init(uint8_t addr); -bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data); -bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); - -void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); -void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue); - -void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue); - -// This should not be called from an interrupt -// (eg. from a timer interrupt). -// Call this while idle (in between matrix scans). -// If the buffer is dirty, it will update the driver with the buffer. -void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index); -void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index); - -void ckled2001_sw_return_normal(uint8_t addr); -void ckled2001_sw_shutdown(uint8_t addr); - -// Registers Page Define -#define CKLED2001_REG_CONFIGURE_CMD_PAGE 0xFD -#define CKLED2001_LED_CONTROL_PAGE 0x00 -#define CKLED2001_LED_PWM_PAGE 0x01 -#define CKLED2001_FUNCTION_PAGE 0x03 -#define CKLED2001_CURRENT_TUNE_PAGE 0x04 - -// Function Register: address 0x00 -#define CKLED2001_REG_CONFIGURATION 0x00 -#define CKLED2001_MSKSW_SHUT_DOWN_MODE (0x0 << 0) -#define CKLED2001_MSKSW_NORMAL_MODE (0x1 << 0) - -#define CKLED2001_REG_DRIVER_ID 0x11 -#define CKLED2001_DRIVER_ID 0x8A - -#define CKLED2001_REG_PDU 0x13 -#define CKLED2001_MSKSET_CA_CB_CHANNEL 0xAA -#define CKLED2001_MSKCLR_CA_CB_CHANNEL 0x00 - -#define CKLED2001_REG_SCAN_PHASE 0x14 -#define CKLED2001_MSKPHASE_12CHANNEL 0x00 -#define CKLED2001_MSKPHASE_11CHANNEL 0x01 -#define CKLED2001_MSKPHASE_10CHANNEL 0x02 -#define CKLED2001_MSKPHASE_9CHANNEL 0x03 -#define CKLED2001_MSKPHASE_8CHANNEL 0x04 -#define CKLED2001_MSKPHASE_7CHANNEL 0x05 -#define CKLED2001_MSKPHASE_6CHANNEL 0x06 -#define CKLED2001_MSKPHASE_5CHANNEL 0x07 -#define CKLED2001_MSKPHASE_4CHANNEL 0x08 -#define CKLED2001_MSKPHASE_3CHANNEL 0x09 -#define CKLED2001_MSKPHASE_2CHANNEL 0x0A -#define CKLED2001_MSKPHASE_1CHANNEL 0x0B - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE1 0x15 -#define CKLED2001_MSKPWM_DELAY_PHASE_ENABLE 0x04 -#define CKLED2001_MSKPWM_DELAY_PHASE_DISABLE 0x00 - -#define CKLED2001_REG_SLEW_RATE_CONTROL_MODE2 0x16 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 -#define CKLED2001_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 - -#define CKLED2001_REG_OPEN_SHORT_ENABLE 0x17 -#define CKLED2001_MSKOPEN_DETECTION_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_DISABLE (0x00) - -#define CKLED2001_REG_OPEN_SHORT_DUTY 0x18 -#define CKLED2001_REG_OPEN_SHORT_FLAG 0x19 - -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) -#define CKLED2001_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) -#define CKLED2001_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) - -#define CKLED2001_REG_SOFTWARE_SLEEP 0x1A -#define CKLED2001_MSKSLEEP_ENABLE 0x02 -#define CKLED2001_MSKSLEEP_DISABLE 0x00 - -// LED Control Registers -#define CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 -#define CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 -#define CKLED2001_LED_CONTROL_ON_OFF_LENGTH ((CKLED2001_LED_CONTROL_ON_OFF_LAST_ADDR - CKLED2001_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR 0x18 -#define CKLED2001_LED_CONTROL_OPEN_LAST_ADDR 0x2F -#define CKLED2001_LED_CONTROL_OPEN_LENGTH ((CKLED2001_LED_CONTROL_OPEN_LAST_ADDR - CKLED2001_LED_CONTROL_OPEN_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR 0x30 -#define CKLED2001_LED_CONTROL_SHORT_LAST_ADDR 0x47 -#define CKLED2001_LED_CONTROL_SHORT_LENGTH ((CKLED2001_LED_CONTROL_SHORT_LAST_ADDR - CKLED2001_LED_CONTROL_SHORT_FIRST_ADDR) + 1) - -#define CKLED2001_LED_CONTROL_PAGE_LENGTH 0x48 - -// LED Control Registers -#define CKLED2001_LED_PWM_FIRST_ADDR 0x00 -#define CKLED2001_LED_PWM_LAST_ADDR 0xBF -#define CKLED2001_LED_PWM_LENGTH 0xC0 - -// Current Tune Registers -#define CKLED2001_LED_CURRENT_TUNE_FIRST_ADDR 0x00 -#define CKLED2001_LED_CURRENT_TUNE_LAST_ADDR 0x0B -#define CKLED2001_LED_CURRENT_TUNE_LENGTH 0x0C - -#define A_1 0x00 -#define A_2 0x01 -#define A_3 0x02 -#define A_4 0x03 -#define A_5 0x04 -#define A_6 0x05 -#define A_7 0x06 -#define A_8 0x07 -#define A_9 0x08 -#define A_10 0x09 -#define A_11 0x0A -#define A_12 0x0B -#define A_13 0x0C -#define A_14 0x0D -#define A_15 0x0E -#define A_16 0x0F - -#define B_1 0x10 -#define B_2 0x11 -#define B_3 0x12 -#define B_4 0x13 -#define B_5 0x14 -#define B_6 0x15 -#define B_7 0x16 -#define B_8 0x17 -#define B_9 0x18 -#define B_10 0x19 -#define B_11 0x1A -#define B_12 0x1B -#define B_13 0x1C -#define B_14 0x1D -#define B_15 0x1E -#define B_16 0x1F - -#define C_1 0x20 -#define C_2 0x21 -#define C_3 0x22 -#define C_4 0x23 -#define C_5 0x24 -#define C_6 0x25 -#define C_7 0x26 -#define C_8 0x27 -#define C_9 0x28 -#define C_10 0x29 -#define C_11 0x2A -#define C_12 0x2B -#define C_13 0x2C -#define C_14 0x2D -#define C_15 0x2E -#define C_16 0x2F - -#define D_1 0x30 -#define D_2 0x31 -#define D_3 0x32 -#define D_4 0x33 -#define D_5 0x34 -#define D_6 0x35 -#define D_7 0x36 -#define D_8 0x37 -#define D_9 0x38 -#define D_10 0x39 -#define D_11 0x3A -#define D_12 0x3B -#define D_13 0x3C -#define D_14 0x3D -#define D_15 0x3E -#define D_16 0x3F - -#define E_1 0x40 -#define E_2 0x41 -#define E_3 0x42 -#define E_4 0x43 -#define E_5 0x44 -#define E_6 0x45 -#define E_7 0x46 -#define E_8 0x47 -#define E_9 0x48 -#define E_10 0x49 -#define E_11 0x4A -#define E_12 0x4B -#define E_13 0x4C -#define E_14 0x4D -#define E_15 0x4E -#define E_16 0x4F - -#define F_1 0x50 -#define F_2 0x51 -#define F_3 0x52 -#define F_4 0x53 -#define F_5 0x54 -#define F_6 0x55 -#define F_7 0x56 -#define F_8 0x57 -#define F_9 0x58 -#define F_10 0x59 -#define F_11 0x5A -#define F_12 0x5B -#define F_13 0x5C -#define F_14 0x5D -#define F_15 0x5E -#define F_16 0x5F - -#define G_1 0x60 -#define G_2 0x61 -#define G_3 0x62 -#define G_4 0x63 -#define G_5 0x64 -#define G_6 0x65 -#define G_7 0x66 -#define G_8 0x67 -#define G_9 0x68 -#define G_10 0x69 -#define G_11 0x6A -#define G_12 0x6B -#define G_13 0x6C -#define G_14 0x6D -#define G_15 0x6E -#define G_16 0x6F - -#define H_1 0x70 -#define H_2 0x71 -#define H_3 0x72 -#define H_4 0x73 -#define H_5 0x74 -#define H_6 0x75 -#define H_7 0x76 -#define H_8 0x77 -#define H_9 0x78 -#define H_10 0x79 -#define H_11 0x7A -#define H_12 0x7B -#define H_13 0x7C -#define H_14 0x7D -#define H_15 0x7E -#define H_16 0x7F - -#define I_1 0x80 -#define I_2 0x81 -#define I_3 0x82 -#define I_4 0x83 -#define I_5 0x84 -#define I_6 0x85 -#define I_7 0x86 -#define I_8 0x87 -#define I_9 0x88 -#define I_10 0x89 -#define I_11 0x8A -#define I_12 0x8B -#define I_13 0x8C -#define I_14 0x8D -#define I_15 0x8E -#define I_16 0x8F - -#define J_1 0x90 -#define J_2 0x91 -#define J_3 0x92 -#define J_4 0x93 -#define J_5 0x94 -#define J_6 0x95 -#define J_7 0x96 -#define J_8 0x97 -#define J_9 0x98 -#define J_10 0x99 -#define J_11 0x9A -#define J_12 0x9B -#define J_13 0x9C -#define J_14 0x9D -#define J_15 0x9E -#define J_16 0x9F - -#define K_1 0xA0 -#define K_2 0xA1 -#define K_3 0xA2 -#define K_4 0xA3 -#define K_5 0xA4 -#define K_6 0xA5 -#define K_7 0xA6 -#define K_8 0xA7 -#define K_9 0xA8 -#define K_10 0xA9 -#define K_11 0xAA -#define K_12 0xAB -#define K_13 0xAC -#define K_14 0xAD -#define K_15 0xAE -#define K_16 0xAF - -#define L_1 0xB0 -#define L_2 0xB1 -#define L_3 0xB2 -#define L_4 0xB3 -#define L_5 0xB4 -#define L_6 0xB5 -#define L_7 0xB6 -#define L_8 0xB7 -#define L_9 0xB8 -#define L_10 0xB9 -#define L_11 0xBA -#define L_12 0xBB -#define L_13 0xBC -#define L_14 0xBD -#define L_15 0xBE -#define L_16 0xBF diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c new file mode 100644 index 0000000000..499769555c --- /dev/null +++ b/drivers/led/snled27351-simple.c @@ -0,0 +1,220 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "snled27351-simple.h" +#include "i2c_master.h" + +#ifndef SNLED27351_I2C_TIMEOUT +# define SNLED27351_I2C_TIMEOUT 100 +#endif + +#ifndef SNLED27351_I2C_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE 0 +#endif + +#ifndef SNLED27351_PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#endif + +#ifndef SNLED27351_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE \ + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +#endif + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[20]; + +// These buffers match the SNLED27351 PWM registers. +// The control buffers match the PG0 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in snled27351_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + // If the transaction fails function returns false. + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + return true; +} + +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // Assumes PG1 is already selected. + // If any of the transactions fails function returns false. + // Transmit PWM registers in 12 transfers of 16 bytes. + // g_twi_transfer_buffer[] is 20 bytes + + // Iterate over the pwm_buffer contents at 16 byte intervals. + for (int i = 0; i < 192; i += 16) { + g_twi_transfer_buffer[0] = i; + // Copy the data from i to i+15. + // Device will auto-increment register for data after the first byte + // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. + for (int j = 0; j < 16; j++) { + g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; + } + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + } + return true; +} + +void snled27351_init(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Setting internal channel pulldown/pullup + snled27351_write_register(addr, SNLED27351_REG_PDU, SNLED27351_MSKSET_CA_CB_CHANNEL); + // Select number of scan phase + snled27351_write_register(addr, SNLED27351_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); + // Setting PWM Delay Phase + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE1, SNLED27351_MSKPWM_DELAY_PHASE_ENABLE); + // Setting Driving/Sinking Channel Slew Rate + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE2, SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); + // Setting Iref + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_DISABLE); + // Set LED CONTROL PAGE (Page 0) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set PWM PAGE (Page 1) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set CURRENT PAGE (Page 4) + uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE; + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_CURRENT_TUNE_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, current_tune_reg_list[i]); + } + + // Enable LEDs ON/OFF + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0xFF); + } + + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_set_value(int index, uint8_t value) { + snled27351_led_t led; + if (index >= 0 && index < LED_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.v] == value) { + return; + } + g_pwm_buffer[led.driver][led.v] = value; + g_pwm_buffer_update_required[led.driver] = true; + } +} + +void snled27351_set_value_all(uint8_t value) { + for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) { + snled27351_set_value(i, value); + } +} + +void snled27351_set_led_control_register(uint8_t index, bool value) { + snled27351_led_t led; + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + uint8_t control_register = led.v / 8; + uint8_t bit_value = led.v % 8; + + if (value) { + g_led_control_registers[led.driver][control_register] |= (1 << bit_value); + } else { + g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value); + } + + g_led_control_registers_update_required[led.driver] = true; +} + +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + + // If any of the transactions fail we risk writing dirty PG0, + // refresh page 0 just in case. + if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) { + g_led_control_registers_update_required[index] = true; + } + } + g_pwm_buffer_update_required[index] = false; +} + +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < 24; i++) { + snled27351_write_register(addr, i, g_led_control_registers[index][i]); + } + } + g_led_control_registers_update_required[index] = false; +} + +void snled27351_sw_return_normal(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_sw_shutdown(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Write SW Sleep Register + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_ENABLE); +} diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h new file mode 100644 index 0000000000..ff71b44b91 --- /dev/null +++ b/drivers/led/snled27351-simple.h @@ -0,0 +1,376 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define SNLED27351_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef CKLED2001_TIMEOUT +# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL +#endif +#ifdef CKLED2001_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE +#endif + +#define MSKPHASE_12CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_MSKPHASE_11CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_MSKPHASE_10CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_MSKPHASE_8CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_MSKPHASE_7CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_MSKPHASE_5CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_MSKPHASE_4CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_MSKPHASE_3CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_MSKPHASE_2CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_MSKPHASE_1CHANNEL + +#define ckled2001_led snled27351_led_t +#define g_ckled2001_leds g_snled27351_leds +// ======== + +#define SNLED27351_I2C_ADDRESS_GND 0x74 +#define SNLED27351_I2C_ADDRESS_SCL 0x75 +#define SNLED27351_I2C_ADDRESS_SDA 0x76 +#define SNLED27351_I2C_ADDRESS_VDDIO 0x77 + +typedef struct snled27351_led_t { + uint8_t driver : 2; + uint8_t v; +} __attribute__((packed)) snled27351_led_t; + +extern const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT]; + +void snled27351_init(uint8_t addr); +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void snled27351_set_value(int index, uint8_t value); +void snled27351_set_value_all(uint8_t value); + +void snled27351_set_led_control_register(uint8_t index, bool value); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index); +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index); + +void snled27351_sw_return_normal(uint8_t addr); +void snled27351_sw_shutdown(uint8_t addr); + +// Registers Page Define +#define SNLED27351_REG_CONFIGURE_CMD_PAGE 0xFD +#define SNLED27351_LED_CONTROL_PAGE 0x00 +#define SNLED27351_LED_PWM_PAGE 0x01 +#define SNLED27351_FUNCTION_PAGE 0x03 +#define SNLED27351_CURRENT_TUNE_PAGE 0x04 + +// Function Register: address 0x00 +#define SNLED27351_REG_CONFIGURATION 0x00 +#define SNLED27351_MSKSW_SHUT_DOWN_MODE (0x0 << 0) +#define SNLED27351_MSKSW_NORMAL_MODE (0x1 << 0) + +#define SNLED27351_REG_DRIVER_ID 0x11 +#define SNLED27351_DRIVER_ID 0x8A + +#define SNLED27351_REG_PDU 0x13 +#define SNLED27351_MSKSET_CA_CB_CHANNEL 0xAA +#define SNLED27351_MSKCLR_CA_CB_CHANNEL 0x00 + +#define SNLED27351_REG_SCAN_PHASE 0x14 +#define SNLED27351_MSKPHASE_12CHANNEL 0x00 +#define SNLED27351_MSKPHASE_11CHANNEL 0x01 +#define SNLED27351_MSKPHASE_10CHANNEL 0x02 +#define SNLED27351_MSKPHASE_9CHANNEL 0x03 +#define SNLED27351_MSKPHASE_8CHANNEL 0x04 +#define SNLED27351_MSKPHASE_7CHANNEL 0x05 +#define SNLED27351_MSKPHASE_6CHANNEL 0x06 +#define SNLED27351_MSKPHASE_5CHANNEL 0x07 +#define SNLED27351_MSKPHASE_4CHANNEL 0x08 +#define SNLED27351_MSKPHASE_3CHANNEL 0x09 +#define SNLED27351_MSKPHASE_2CHANNEL 0x0A +#define SNLED27351_MSKPHASE_1CHANNEL 0x0B + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE1 0x15 +#define SNLED27351_MSKPWM_DELAY_PHASE_ENABLE 0x04 +#define SNLED27351_MSKPWM_DELAY_PHASE_DISABLE 0x00 + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE2 0x16 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 + +#define SNLED27351_REG_OPEN_SHORT_ENABLE 0x17 +#define SNLED27351_MSKOPEN_DETECTION_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_DISABLE (0x00) + +#define SNLED27351_REG_OPEN_SHORT_DUTY 0x18 +#define SNLED27351_REG_OPEN_SHORT_FLAG 0x19 + +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_REG_SOFTWARE_SLEEP 0x1A +#define SNLED27351_MSKSLEEP_ENABLE 0x02 +#define SNLED27351_MSKSLEEP_DISABLE 0x00 + +// LED Control Registers +#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 + +// LED Control Registers +#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 +#define SNLED27351_LED_PWM_LAST_ADDR 0xBF +#define SNLED27351_LED_PWM_LENGTH 0xC0 + +// Current Tune Registers +#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C + +#define A_1 0x00 +#define A_2 0x01 +#define A_3 0x02 +#define A_4 0x03 +#define A_5 0x04 +#define A_6 0x05 +#define A_7 0x06 +#define A_8 0x07 +#define A_9 0x08 +#define A_10 0x09 +#define A_11 0x0A +#define A_12 0x0B +#define A_13 0x0C +#define A_14 0x0D +#define A_15 0x0E +#define A_16 0x0F + +#define B_1 0x10 +#define B_2 0x11 +#define B_3 0x12 +#define B_4 0x13 +#define B_5 0x14 +#define B_6 0x15 +#define B_7 0x16 +#define B_8 0x17 +#define B_9 0x18 +#define B_10 0x19 +#define B_11 0x1A +#define B_12 0x1B +#define B_13 0x1C +#define B_14 0x1D +#define B_15 0x1E +#define B_16 0x1F + +#define C_1 0x20 +#define C_2 0x21 +#define C_3 0x22 +#define C_4 0x23 +#define C_5 0x24 +#define C_6 0x25 +#define C_7 0x26 +#define C_8 0x27 +#define C_9 0x28 +#define C_10 0x29 +#define C_11 0x2A +#define C_12 0x2B +#define C_13 0x2C +#define C_14 0x2D +#define C_15 0x2E +#define C_16 0x2F + +#define D_1 0x30 +#define D_2 0x31 +#define D_3 0x32 +#define D_4 0x33 +#define D_5 0x34 +#define D_6 0x35 +#define D_7 0x36 +#define D_8 0x37 +#define D_9 0x38 +#define D_10 0x39 +#define D_11 0x3A +#define D_12 0x3B +#define D_13 0x3C +#define D_14 0x3D +#define D_15 0x3E +#define D_16 0x3F + +#define E_1 0x40 +#define E_2 0x41 +#define E_3 0x42 +#define E_4 0x43 +#define E_5 0x44 +#define E_6 0x45 +#define E_7 0x46 +#define E_8 0x47 +#define E_9 0x48 +#define E_10 0x49 +#define E_11 0x4A +#define E_12 0x4B +#define E_13 0x4C +#define E_14 0x4D +#define E_15 0x4E +#define E_16 0x4F + +#define F_1 0x50 +#define F_2 0x51 +#define F_3 0x52 +#define F_4 0x53 +#define F_5 0x54 +#define F_6 0x55 +#define F_7 0x56 +#define F_8 0x57 +#define F_9 0x58 +#define F_10 0x59 +#define F_11 0x5A +#define F_12 0x5B +#define F_13 0x5C +#define F_14 0x5D +#define F_15 0x5E +#define F_16 0x5F + +#define G_1 0x60 +#define G_2 0x61 +#define G_3 0x62 +#define G_4 0x63 +#define G_5 0x64 +#define G_6 0x65 +#define G_7 0x66 +#define G_8 0x67 +#define G_9 0x68 +#define G_10 0x69 +#define G_11 0x6A +#define G_12 0x6B +#define G_13 0x6C +#define G_14 0x6D +#define G_15 0x6E +#define G_16 0x6F + +#define H_1 0x70 +#define H_2 0x71 +#define H_3 0x72 +#define H_4 0x73 +#define H_5 0x74 +#define H_6 0x75 +#define H_7 0x76 +#define H_8 0x77 +#define H_9 0x78 +#define H_10 0x79 +#define H_11 0x7A +#define H_12 0x7B +#define H_13 0x7C +#define H_14 0x7D +#define H_15 0x7E +#define H_16 0x7F + +#define I_1 0x80 +#define I_2 0x81 +#define I_3 0x82 +#define I_4 0x83 +#define I_5 0x84 +#define I_6 0x85 +#define I_7 0x86 +#define I_8 0x87 +#define I_9 0x88 +#define I_10 0x89 +#define I_11 0x8A +#define I_12 0x8B +#define I_13 0x8C +#define I_14 0x8D +#define I_15 0x8E +#define I_16 0x8F + +#define J_1 0x90 +#define J_2 0x91 +#define J_3 0x92 +#define J_4 0x93 +#define J_5 0x94 +#define J_6 0x95 +#define J_7 0x96 +#define J_8 0x97 +#define J_9 0x98 +#define J_10 0x99 +#define J_11 0x9A +#define J_12 0x9B +#define J_13 0x9C +#define J_14 0x9D +#define J_15 0x9E +#define J_16 0x9F + +#define K_1 0xA0 +#define K_2 0xA1 +#define K_3 0xA2 +#define K_4 0xA3 +#define K_5 0xA4 +#define K_6 0xA5 +#define K_7 0xA6 +#define K_8 0xA7 +#define K_9 0xA8 +#define K_10 0xA9 +#define K_11 0xAA +#define K_12 0xAB +#define K_13 0xAC +#define K_14 0xAD +#define K_15 0xAE +#define K_16 0xAF + +#define L_1 0xB0 +#define L_2 0xB1 +#define L_3 0xB2 +#define L_4 0xB3 +#define L_5 0xB4 +#define L_6 0xB5 +#define L_7 0xB6 +#define L_8 0xB7 +#define L_9 0xB8 +#define L_10 0xB9 +#define L_11 0xBA +#define L_12 0xBB +#define L_13 0xBC +#define L_14 0xBD +#define L_15 0xBE +#define L_16 0xBF diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c new file mode 100644 index 0000000000..1ca691b30f --- /dev/null +++ b/drivers/led/snled27351.c @@ -0,0 +1,235 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "snled27351.h" +#include "i2c_master.h" + +#ifndef SNLED27351_I2C_TIMEOUT +# define SNLED27351_I2C_TIMEOUT 100 +#endif + +#ifndef SNLED27351_I2C_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE 0 +#endif + +#ifndef SNLED27351_PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#endif + +#ifndef SNLED27351_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE \ + { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +#endif + +// Transfer buffer for TWITransmitData() +uint8_t g_twi_transfer_buffer[65]; + +// These buffers match the SNLED27351 PWM registers. +// The control buffers match the PG0 LED On/Off registers. +// Storing them like this is optimal for I2C transfers to the registers. +// We could optimize this and take out the unused registers from these +// buffers and the transfers in snled27351_write_pwm_buffer() but it's +// probably not worth the extra complexity. +uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][192]; +bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][24] = {0}; +bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false}; + +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { + // If the transaction fails function returns false. + g_twi_transfer_buffer[0] = reg; + g_twi_transfer_buffer[1] = data; + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + return true; +} + +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) { + // Assumes PG1 is already selected. + // If any of the transactions fails function returns false. + // Transmit PWM registers in 3 transfers of 64 bytes. + + // Iterate over the pwm_buffer contents at 64 byte intervals. + for (uint8_t i = 0; i < 192; i += 64) { + g_twi_transfer_buffer[0] = i; + // Copy the data from i to i+63. + // Device will auto-increment register for data after the first byte + // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. + for (uint8_t j = 0; j < 64; j++) { + g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; + } + +#if SNLED27351_I2C_PERSISTENCE > 0 + for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } + } +#else + if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) { + return false; + } +#endif + } + return true; +} + +void snled27351_init(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Setting internal channel pulldown/pullup + snled27351_write_register(addr, SNLED27351_REG_PDU, SNLED27351_MSKSET_CA_CB_CHANNEL); + // Select number of scan phase + snled27351_write_register(addr, SNLED27351_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL); + // Setting PWM Delay Phase + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE1, SNLED27351_MSKPWM_DELAY_PHASE_ENABLE); + // Setting Driving/Sinking Channel Slew Rate + snled27351_write_register(addr, SNLED27351_REG_SLEW_RATE_CONTROL_MODE2, SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE); + // Setting Iref + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_DISABLE); + // Set LED CONTROL PAGE (Page 0) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set PWM PAGE (Page 1) + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, 0x00); + } + + // Set CURRENT PAGE (Page 4) + uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE; + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_CURRENT_TUNE_PAGE); + for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) { + snled27351_write_register(addr, i, current_tune_reg_list[i]); + } + + // Enable LEDs ON/OFF + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) { + snled27351_write_register(addr, i, 0xFF); + } + + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { + snled27351_led_t led; + if (index >= 0 && index < RGB_MATRIX_LED_COUNT) { + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) { + return; + } + g_pwm_buffer[led.driver][led.r] = red; + g_pwm_buffer[led.driver][led.g] = green; + g_pwm_buffer[led.driver][led.b] = blue; + g_pwm_buffer_update_required[led.driver] = true; + } +} + +void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { + for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) { + snled27351_set_color(i, red, green, blue); + } +} + +void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue) { + snled27351_led_t led; + memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led)); + + uint8_t control_register_r = led.r / 8; + uint8_t control_register_g = led.g / 8; + uint8_t control_register_b = led.b / 8; + uint8_t bit_r = led.r % 8; + uint8_t bit_g = led.g % 8; + uint8_t bit_b = led.b % 8; + + if (red) { + g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r); + } else { + g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r); + } + if (green) { + g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g); + } else { + g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g); + } + if (blue) { + g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b); + } else { + g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b); + } + + g_led_control_registers_update_required[led.driver] = true; +} + +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) { + if (g_pwm_buffer_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_PWM_PAGE); + + // If any of the transactions fail we risk writing dirty PG0, + // refresh page 0 just in case. + if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) { + g_led_control_registers_update_required[index] = true; + } + } + g_pwm_buffer_update_required[index] = false; +} + +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) { + if (g_led_control_registers_update_required[index]) { + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_LED_CONTROL_PAGE); + for (int i = 0; i < 24; i++) { + snled27351_write_register(addr, i, g_led_control_registers[index][i]); + } + } + g_led_control_registers_update_required[index] = false; +} + +void snled27351_sw_return_normal(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to normal mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_NORMAL_MODE); +} + +void snled27351_sw_shutdown(uint8_t addr) { + // Select to function page + snled27351_write_register(addr, SNLED27351_REG_CONFIGURE_CMD_PAGE, SNLED27351_FUNCTION_PAGE); + // Setting LED driver to shutdown mode + snled27351_write_register(addr, SNLED27351_REG_CONFIGURATION, SNLED27351_MSKSW_SHUT_DOWN_MODE); + // Write SW Sleep Register + snled27351_write_register(addr, SNLED27351_REG_SOFTWARE_SLEEP, SNLED27351_MSKSLEEP_ENABLE); +} diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h new file mode 100644 index 0000000000..770becdba1 --- /dev/null +++ b/drivers/led/snled27351.h @@ -0,0 +1,378 @@ +/* Copyright 2021 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include +#include +#include "progmem.h" + +// ======== DEPRECATED DEFINES - DO NOT USE ======== +#ifdef DRIVER_COUNT +# define SNLED27351_DRIVER_COUNT DRIVER_COUNT +#endif +#ifdef CKLED2001_TIMEOUT +# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT +#endif +#ifdef CKLED2001_PERSISTENCE +# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE +#endif +#ifdef PHASE_CHANNEL +# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL +#endif +#ifdef CKLED2001_CURRENT_TUNE +# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE +#endif + +#define MSKPHASE_12CHANNEL SNLED27351_MSKPHASE_12CHANNEL +#define MSKPHASE_11CHANNEL SNLED27351_MSKPHASE_11CHANNEL +#define MSKPHASE_10CHANNEL SNLED27351_MSKPHASE_10CHANNEL +#define MSKPHASE_9CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define MSKPHASE_8CHANNEL SNLED27351_MSKPHASE_8CHANNEL +#define MSKPHASE_7CHANNEL SNLED27351_MSKPHASE_7CHANNEL +#define MSKPHASE_6CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define MSKPHASE_5CHANNEL SNLED27351_MSKPHASE_5CHANNEL +#define MSKPHASE_4CHANNEL SNLED27351_MSKPHASE_4CHANNEL +#define MSKPHASE_3CHANNEL SNLED27351_MSKPHASE_3CHANNEL +#define MSKPHASE_2CHANNEL SNLED27351_MSKPHASE_2CHANNEL +#define MSKPHASE_1CHANNEL SNLED27351_MSKPHASE_1CHANNEL + +#define ckled2001_led snled27351_led_t +#define g_ckled2001_leds g_snled27351_leds +// ======== + +#define SNLED27351_I2C_ADDRESS_GND 0x74 +#define SNLED27351_I2C_ADDRESS_SCL 0x75 +#define SNLED27351_I2C_ADDRESS_SDA 0x76 +#define SNLED27351_I2C_ADDRESS_VDDIO 0x77 + +typedef struct snled27351_led_t { + uint8_t driver : 2; + uint8_t r; + uint8_t g; + uint8_t b; +} __attribute__((packed)) snled27351_led_t; + +extern const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT]; + +void snled27351_init(uint8_t addr); +bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data); +bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); + +void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); +void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue); + +void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue); + +// This should not be called from an interrupt +// (eg. from a timer interrupt). +// Call this while idle (in between matrix scans). +// If the buffer is dirty, it will update the driver with the buffer. +void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index); +void snled27351_update_led_control_registers(uint8_t addr, uint8_t index); + +void snled27351_sw_return_normal(uint8_t addr); +void snled27351_sw_shutdown(uint8_t addr); + +// Registers Page Define +#define SNLED27351_REG_CONFIGURE_CMD_PAGE 0xFD +#define SNLED27351_LED_CONTROL_PAGE 0x00 +#define SNLED27351_LED_PWM_PAGE 0x01 +#define SNLED27351_FUNCTION_PAGE 0x03 +#define SNLED27351_CURRENT_TUNE_PAGE 0x04 + +// Function Register: address 0x00 +#define SNLED27351_REG_CONFIGURATION 0x00 +#define SNLED27351_MSKSW_SHUT_DOWN_MODE (0x0 << 0) +#define SNLED27351_MSKSW_NORMAL_MODE (0x1 << 0) + +#define SNLED27351_REG_DRIVER_ID 0x11 +#define SNLED27351_DRIVER_ID 0x8A + +#define SNLED27351_REG_PDU 0x13 +#define SNLED27351_MSKSET_CA_CB_CHANNEL 0xAA +#define SNLED27351_MSKCLR_CA_CB_CHANNEL 0x00 + +#define SNLED27351_REG_SCAN_PHASE 0x14 +#define SNLED27351_MSKPHASE_12CHANNEL 0x00 +#define SNLED27351_MSKPHASE_11CHANNEL 0x01 +#define SNLED27351_MSKPHASE_10CHANNEL 0x02 +#define SNLED27351_MSKPHASE_9CHANNEL 0x03 +#define SNLED27351_MSKPHASE_8CHANNEL 0x04 +#define SNLED27351_MSKPHASE_7CHANNEL 0x05 +#define SNLED27351_MSKPHASE_6CHANNEL 0x06 +#define SNLED27351_MSKPHASE_5CHANNEL 0x07 +#define SNLED27351_MSKPHASE_4CHANNEL 0x08 +#define SNLED27351_MSKPHASE_3CHANNEL 0x09 +#define SNLED27351_MSKPHASE_2CHANNEL 0x0A +#define SNLED27351_MSKPHASE_1CHANNEL 0x0B + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE1 0x15 +#define SNLED27351_MSKPWM_DELAY_PHASE_ENABLE 0x04 +#define SNLED27351_MSKPWM_DELAY_PHASE_DISABLE 0x00 + +#define SNLED27351_REG_SLEW_RATE_CONTROL_MODE2 0x16 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_ENABLE 0xC0 +#define SNLED27351_MSKDRIVING_SINKING_CHANNEL_SLEWRATE_DISABLE 0x00 + +#define SNLED27351_REG_OPEN_SHORT_ENABLE 0x17 +#define SNLED27351_MSKOPEN_DETECTION_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_DISABLE (0x00) + +#define SNLED27351_REG_OPEN_SHORT_DUTY 0x18 +#define SNLED27351_REG_OPEN_SHORT_FLAG 0x19 + +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7) +#define SNLED27351_MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6) +#define SNLED27351_MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00) + +#define SNLED27351_REG_SOFTWARE_SLEEP 0x1A +#define SNLED27351_MSKSLEEP_ENABLE 0x02 +#define SNLED27351_MSKSLEEP_DISABLE 0x00 + +// LED Control Registers +#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0 +#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17 +#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18 +#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F +#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30 +#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47 +#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1) + +#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48 + +// LED Control Registers +#define SNLED27351_LED_PWM_FIRST_ADDR 0x00 +#define SNLED27351_LED_PWM_LAST_ADDR 0xBF +#define SNLED27351_LED_PWM_LENGTH 0xC0 + +// Current Tune Registers +#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00 +#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B +#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C + +#define A_1 0x00 +#define A_2 0x01 +#define A_3 0x02 +#define A_4 0x03 +#define A_5 0x04 +#define A_6 0x05 +#define A_7 0x06 +#define A_8 0x07 +#define A_9 0x08 +#define A_10 0x09 +#define A_11 0x0A +#define A_12 0x0B +#define A_13 0x0C +#define A_14 0x0D +#define A_15 0x0E +#define A_16 0x0F + +#define B_1 0x10 +#define B_2 0x11 +#define B_3 0x12 +#define B_4 0x13 +#define B_5 0x14 +#define B_6 0x15 +#define B_7 0x16 +#define B_8 0x17 +#define B_9 0x18 +#define B_10 0x19 +#define B_11 0x1A +#define B_12 0x1B +#define B_13 0x1C +#define B_14 0x1D +#define B_15 0x1E +#define B_16 0x1F + +#define C_1 0x20 +#define C_2 0x21 +#define C_3 0x22 +#define C_4 0x23 +#define C_5 0x24 +#define C_6 0x25 +#define C_7 0x26 +#define C_8 0x27 +#define C_9 0x28 +#define C_10 0x29 +#define C_11 0x2A +#define C_12 0x2B +#define C_13 0x2C +#define C_14 0x2D +#define C_15 0x2E +#define C_16 0x2F + +#define D_1 0x30 +#define D_2 0x31 +#define D_3 0x32 +#define D_4 0x33 +#define D_5 0x34 +#define D_6 0x35 +#define D_7 0x36 +#define D_8 0x37 +#define D_9 0x38 +#define D_10 0x39 +#define D_11 0x3A +#define D_12 0x3B +#define D_13 0x3C +#define D_14 0x3D +#define D_15 0x3E +#define D_16 0x3F + +#define E_1 0x40 +#define E_2 0x41 +#define E_3 0x42 +#define E_4 0x43 +#define E_5 0x44 +#define E_6 0x45 +#define E_7 0x46 +#define E_8 0x47 +#define E_9 0x48 +#define E_10 0x49 +#define E_11 0x4A +#define E_12 0x4B +#define E_13 0x4C +#define E_14 0x4D +#define E_15 0x4E +#define E_16 0x4F + +#define F_1 0x50 +#define F_2 0x51 +#define F_3 0x52 +#define F_4 0x53 +#define F_5 0x54 +#define F_6 0x55 +#define F_7 0x56 +#define F_8 0x57 +#define F_9 0x58 +#define F_10 0x59 +#define F_11 0x5A +#define F_12 0x5B +#define F_13 0x5C +#define F_14 0x5D +#define F_15 0x5E +#define F_16 0x5F + +#define G_1 0x60 +#define G_2 0x61 +#define G_3 0x62 +#define G_4 0x63 +#define G_5 0x64 +#define G_6 0x65 +#define G_7 0x66 +#define G_8 0x67 +#define G_9 0x68 +#define G_10 0x69 +#define G_11 0x6A +#define G_12 0x6B +#define G_13 0x6C +#define G_14 0x6D +#define G_15 0x6E +#define G_16 0x6F + +#define H_1 0x70 +#define H_2 0x71 +#define H_3 0x72 +#define H_4 0x73 +#define H_5 0x74 +#define H_6 0x75 +#define H_7 0x76 +#define H_8 0x77 +#define H_9 0x78 +#define H_10 0x79 +#define H_11 0x7A +#define H_12 0x7B +#define H_13 0x7C +#define H_14 0x7D +#define H_15 0x7E +#define H_16 0x7F + +#define I_1 0x80 +#define I_2 0x81 +#define I_3 0x82 +#define I_4 0x83 +#define I_5 0x84 +#define I_6 0x85 +#define I_7 0x86 +#define I_8 0x87 +#define I_9 0x88 +#define I_10 0x89 +#define I_11 0x8A +#define I_12 0x8B +#define I_13 0x8C +#define I_14 0x8D +#define I_15 0x8E +#define I_16 0x8F + +#define J_1 0x90 +#define J_2 0x91 +#define J_3 0x92 +#define J_4 0x93 +#define J_5 0x94 +#define J_6 0x95 +#define J_7 0x96 +#define J_8 0x97 +#define J_9 0x98 +#define J_10 0x99 +#define J_11 0x9A +#define J_12 0x9B +#define J_13 0x9C +#define J_14 0x9D +#define J_15 0x9E +#define J_16 0x9F + +#define K_1 0xA0 +#define K_2 0xA1 +#define K_3 0xA2 +#define K_4 0xA3 +#define K_5 0xA4 +#define K_6 0xA5 +#define K_7 0xA6 +#define K_8 0xA7 +#define K_9 0xA8 +#define K_10 0xA9 +#define K_11 0xAA +#define K_12 0xAB +#define K_13 0xAC +#define K_14 0xAD +#define K_15 0xAE +#define K_16 0xAF + +#define L_1 0xB0 +#define L_2 0xB1 +#define L_3 0xB2 +#define L_4 0xB3 +#define L_5 0xB4 +#define L_6 0xB5 +#define L_7 0xB6 +#define L_8 0xB7 +#define L_9 0xB8 +#define L_10 0xB9 +#define L_11 0xBA +#define L_12 0xBB +#define L_13 0xBC +#define L_14 0xBD +#define L_15 0xBE +#define L_16 0xBF diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c index a14f02bc76..91f53e1e55 100644 --- a/keyboards/akko/5108/5108.c +++ b/keyboards/akko/5108/5108.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h index a50041ccc9..73c7c27939 100644 --- a/keyboards/akko/5108/config.h +++ b/keyboards/akko/5108/config.h @@ -34,9 +34,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json index 93e73f3cd3..662a949a53 100644 --- a/keyboards/akko/5108/info.json +++ b/keyboards/akko/5108/info.json @@ -41,7 +41,7 @@ "caps_lock": "C10" }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/akko/acr87/acr87.c b/keyboards/akko/acr87/acr87.c index e175e21368..7ee9ec6470 100644 --- a/keyboards/akko/acr87/acr87.c +++ b/keyboards/akko/acr87/acr87.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h index 6afa413552..1ff3380d6a 100644 --- a/keyboards/akko/acr87/config.h +++ b/keyboards/akko/acr87/config.h @@ -31,10 +31,10 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 3 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 -#define DRIVER_ADDR_3 0b1110110 +#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 I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json index 0533d328a9..5ccb0c3f73 100644 --- a/keyboards/akko/acr87/info.json +++ b/keyboards/akko/acr87/info.json @@ -37,7 +37,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h index 09474e1217..fd10534ce7 100644 --- a/keyboards/akko/top40/config.h +++ b/keyboards/akko/top40/config.h @@ -31,9 +31,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json index b5ff321740..243952ccc8 100644 --- a/keyboards/akko/top40/info.json +++ b/keyboards/akko/top40/info.json @@ -37,7 +37,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c index 7fe193447d..028e4bdd05 100644 --- a/keyboards/akko/top40/top40.c +++ b/keyboards/akko/top40/top40.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/chosfox/cf81/cf81.c b/keyboards/chosfox/cf81/cf81.c index ab8afd0c63..ad7ec9bc55 100644 --- a/keyboards/chosfox/cf81/cf81.c +++ b/keyboards/chosfox/cf81/cf81.c @@ -18,8 +18,8 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h index 2c85f5dd04..5895d60903 100644 --- a/keyboards/chosfox/cf81/config.h +++ b/keyboards/chosfox/cf81/config.h @@ -31,9 +31,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json index bbfc2deb31..5dff610071 100644 --- a/keyboards/chosfox/cf81/info.json +++ b/keyboards/chosfox/cf81/info.json @@ -39,7 +39,7 @@ ] }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "animations": { "breathing": true, "cycle_all": true, diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h index ed1f3cf160..efa076c915 100644 --- a/keyboards/inland/kb83/config.h +++ b/keyboards/inland/kb83/config.h @@ -38,9 +38,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SDA_PIN B7 #define I2C1_SCL_PIN B6 #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json index cd538ef4ee..f0da3f50b6 100644 --- a/keyboards/inland/kb83/info.json +++ b/keyboards/inland/kb83/info.json @@ -9,7 +9,7 @@ "force_nkro": true }, "rgb_matrix": { - "driver": "is31fl3733" + "driver": "snled27351" }, "processor": "WB32FQ95", "bootloader": "wb32-dfu", diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c index 86b52cfe92..49604b93be 100644 --- a/keyboards/inland/kb83/kb83.c +++ b/keyboards/inland/kb83/kb83.c @@ -18,8 +18,8 @@ // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h index db9aea328f..7e0115f7f0 100644 --- a/keyboards/inland/mk47/config.h +++ b/keyboards/inland/mk47/config.h @@ -25,8 +25,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND + /* WB32 MCU has no default definition */ #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json index 7d94365724..e647723ed8 100644 --- a/keyboards/inland/mk47/info.json +++ b/keyboards/inland/mk47/info.json @@ -34,7 +34,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 200, "animations": { "breathing": true, diff --git a/keyboards/inland/mk47/mk47.c b/keyboards/inland/mk47/mk47.c index f247855944..5a34527c6c 100644 --- a/keyboards/inland/mk47/mk47.c +++ b/keyboards/inland/mk47/mk47.c @@ -16,8 +16,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h index c6b63b4d7c..f2779f2bb9 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h @@ -20,18 +20,18 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 49 #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Set led driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/c1_pro/ansi/rgb/info.json b/keyboards/keychron/c1_pro/ansi/rgb/info.json index c6011a2837..fcd805706b 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/info.json +++ b/keyboards/keychron/c1_pro/ansi/rgb/info.json @@ -105,7 +105,7 @@ } }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c index 04565f3b01..c04e82a44e 100644 --- a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c +++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c @@ -18,8 +18,8 @@ // clang-format off #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 diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h index 5492eca28f..430cb68a8e 100644 --- a/keyboards/keychron/c1_pro/ansi/white/config.h +++ b/keyboards/keychron/c1_pro/ansi/white/config.h @@ -20,15 +20,15 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* LED Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* LED Matrix Configuration */ #define LED_MATRIX_LED_COUNT 90 -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Set led driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/c1_pro/ansi/white/info.json b/keyboards/keychron/c1_pro/ansi/white/info.json index 070ed6c427..4a6c6e2b8d 100644 --- a/keyboards/keychron/c1_pro/ansi/white/info.json +++ b/keyboards/keychron/c1_pro/ansi/white/info.json @@ -105,7 +105,7 @@ } }, "led_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "none": true, "solid": true, diff --git a/keyboards/keychron/c1_pro/ansi/white/white.c b/keyboards/keychron/c1_pro/ansi/white/white.c index 72e9ad4db1..15f291e80c 100644 --- a/keyboards/keychron/c1_pro/ansi/white/white.c +++ b/keyboards/keychron/c1_pro/ansi/white/white.c @@ -18,8 +18,8 @@ // clang-format off #ifdef LED_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | LED address * | | */ diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h index d2d3d61f29..673e8e438e 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/config.h +++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h @@ -17,12 +17,12 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56 } /* RGB Matrix Configuration */ diff --git a/keyboards/keychron/c2_pro/ansi/rgb/info.json b/keyboards/keychron/c2_pro/ansi/rgb/info.json index e527af3371..1eee0ee1cd 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/info.json +++ b/keyboards/keychron/c2_pro/ansi/rgb/info.json @@ -122,7 +122,7 @@ } }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c index 998933081f..d42c2de39e 100644 --- a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c +++ b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c @@ -17,8 +17,8 @@ #include "quantum.h" #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 diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h index fb2ca3aa41..9945901527 100644 --- a/keyboards/keychron/c2_pro/ansi/white/config.h +++ b/keyboards/keychron/c2_pro/ansi/white/config.h @@ -17,11 +17,11 @@ #pragma once /* LED Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0 } /* LED Matrix Configuration */ diff --git a/keyboards/keychron/c2_pro/ansi/white/info.json b/keyboards/keychron/c2_pro/ansi/white/info.json index dc58d1943b..4d9b1e12b8 100644 --- a/keyboards/keychron/c2_pro/ansi/white/info.json +++ b/keyboards/keychron/c2_pro/ansi/white/info.json @@ -122,7 +122,7 @@ } }, "led_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "none": true, "solid": true, diff --git a/keyboards/keychron/c2_pro/ansi/white/white.c b/keyboards/keychron/c2_pro/ansi/white/white.c index 963ac8755f..9c75e73c6d 100644 --- a/keyboards/keychron/c2_pro/ansi/white/white.c +++ b/keyboards/keychron/c2_pro/ansi/white/white.c @@ -18,8 +18,8 @@ // clang-format off #ifdef LED_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | LED address * | | */ diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h index c0366b1ed8..f4ec417043 100644 --- a/keyboards/keychron/q0/config.h +++ b/keyboards/keychron/q0/config.h @@ -16,7 +16,7 @@ #pragma once -#define CKLED2001_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } +#define SNLED27351_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h index c6a241a1ce..8b14e05a29 100644 --- a/keyboards/keychron/q0/rev_0130/config.h +++ b/keyboards/keychron/q0/rev_0130/config.h @@ -17,8 +17,8 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 21 diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json index f6225c884a..6b5a29d7ea 100644 --- a/keyboards/keychron/q0/rev_0130/info.json +++ b/keyboards/keychron/q0/rev_0130/info.json @@ -29,7 +29,7 @@ "processor": "STM32L432", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c index ffe82a6d8c..05803234c0 100644 --- a/keyboards/keychron/q0/rev_0130/rev_0130.c +++ b/keyboards/keychron/q0/rev_0130/rev_0130.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/rev_0131/config.h index f1d06a2842..f3187704a7 100644 --- a/keyboards/keychron/q0/rev_0131/config.h +++ b/keyboards/keychron/q0/rev_0131/config.h @@ -17,14 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 26 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Enable num-lock LED */ #define NUM_LOCK_LED_INDEX 5 diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/rev_0131/info.json index c569e498f4..24d2a0488a 100644 --- a/keyboards/keychron/q0/rev_0131/info.json +++ b/keyboards/keychron/q0/rev_0131/info.json @@ -38,7 +38,7 @@ "processor": "STM32L432", "bootloader": "stm32-dfu", "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "band_spiral_val": true, "breathing": true, diff --git a/keyboards/keychron/q0/rev_0131/rev_0131.c b/keyboards/keychron/q0/rev_0131/rev_0131.c index 282c511ce2..0466e1a584 100644 --- a/keyboards/keychron/q0/rev_0131/rev_0131.c +++ b/keyboards/keychron/q0/rev_0131/rev_0131.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c index c5abcb4f6e..a9df1609e0 100644 --- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q10/ansi_encoder/info.json b/keyboards/keychron/q10/ansi_encoder/info.json index 8a8a624154..da2cb106e3 100644 --- a/keyboards/keychron/q10/ansi_encoder/info.json +++ b/keyboards/keychron/q10/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h index 3a0d613510..b31322464e 100644 --- a/keyboards/keychron/q10/config.h +++ b/keyboards/keychron/q10/config.h @@ -30,9 +30,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -41,8 +41,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } /* DIP switch */ diff --git a/keyboards/keychron/q10/iso_encoder/info.json b/keyboards/keychron/q10/iso_encoder/info.json index d7e1bf2885..08e6b2deae 100644 --- a/keyboards/keychron/q10/iso_encoder/info.json +++ b/keyboards/keychron/q10/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c index 1e8f80ddd8..fbe4bca637 100644 --- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c index 0585ae9c96..f7acae7add 100755 --- a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index 90bd7e0a56..6880ee7c2d 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -27,8 +27,8 @@ #define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c` /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF } // 300mA /* EEPROM Driver Configuration */ diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json index cd2864979d..7a56725324 100755 --- a/keyboards/keychron/q11/info.json +++ b/keyboards/keychron/q11/info.json @@ -59,7 +59,7 @@ ] }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/q11/iso_encoder/iso_encoder.c b/keyboards/keychron/q11/iso_encoder/iso_encoder.c index 08858d9b79..a2db569710 100755 --- a/keyboards/keychron/q11/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q11/iso_encoder/iso_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #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 diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c index 2cfaeae8fc..350da52661 100644 --- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q12/ansi_encoder/info.json b/keyboards/keychron/q12/ansi_encoder/info.json index 97c1334ffd..291fd1774c 100644 --- a/keyboards/keychron/q12/ansi_encoder/info.json +++ b/keyboards/keychron/q12/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h index 52c4ade5a6..1114c966aa 100644 --- a/keyboards/keychron/q12/config.h +++ b/keyboards/keychron/q12/config.h @@ -26,9 +26,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55 } /* DIP switch */ diff --git a/keyboards/keychron/q12/iso_encoder/info.json b/keyboards/keychron/q12/iso_encoder/info.json index cd848c86b6..edd0d0ea43 100644 --- a/keyboards/keychron/q12/iso_encoder/info.json +++ b/keyboards/keychron/q12/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c index 8090649d33..37d9db10b4 100644 --- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q2/ansi/ansi.c b/keyboards/keychron/q2/ansi/ansi.c index baf12d3df0..d0ff0a1869 100644 --- a/keyboards/keychron/q2/ansi/ansi.c +++ b/keyboards/keychron/q2/ansi/ansi.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c index baf12d3df0..d0ff0a1869 100644 --- a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h index b6b2e8356a..9b17851400 100644 --- a/keyboards/keychron/q2/config.h +++ b/keyboards/keychron/q2/config.h @@ -22,11 +22,11 @@ #define DIP_SWITCH_MATRIX_GRID { {4, 4} } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json index 7667ac5b28..47d9aa83b1 100644 --- a/keyboards/keychron/q2/info.json +++ b/keyboards/keychron/q2/info.json @@ -51,7 +51,7 @@ "splash": true, "typing_heatmap": true }, - "driver": "ckled2001" + "driver": "snled27351" }, "url": "https://github.com/Keychron", "usb": { diff --git a/keyboards/keychron/q2/iso/iso.c b/keyboards/keychron/q2/iso/iso.c index c852b8d0cb..a54c90bc4b 100644 --- a/keyboards/keychron/q2/iso/iso.c +++ b/keyboards/keychron/q2/iso/iso.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q2/iso_encoder/iso_encoder.c b/keyboards/keychron/q2/iso_encoder/iso_encoder.c index c852b8d0cb..a54c90bc4b 100644 --- a/keyboards/keychron/q2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q2/iso_encoder/iso_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q2/jis/config.h b/keyboards/keychron/q2/jis/config.h index fa6fc4e91a..0d811e0845 100644 --- a/keyboards/keychron/q2/jis/config.h +++ b/keyboards/keychron/q2/jis/config.h @@ -19,7 +19,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 71 -#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } +#define SNLED27351_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/jis/jis.c b/keyboards/keychron/q2/jis/jis.c index 9d8f439d6f..d877e225d9 100644 --- a/keyboards/keychron/q2/jis/jis.c +++ b/keyboards/keychron/q2/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q2/jis_encoder/config.h b/keyboards/keychron/q2/jis_encoder/config.h index fa6fc4e91a..0d811e0845 100644 --- a/keyboards/keychron/q2/jis_encoder/config.h +++ b/keyboards/keychron/q2/jis_encoder/config.h @@ -19,7 +19,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 71 -#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } +#define SNLED27351_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D } /* Enable caps-lock LED */ #define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/jis_encoder/jis_encoder.c b/keyboards/keychron/q2/jis_encoder/jis_encoder.c index 9d8f439d6f..d877e225d9 100644 --- a/keyboards/keychron/q2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q2/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q3/ansi/ansi.c b/keyboards/keychron/q3/ansi/ansi.c index 220cfcb98d..8327ee430b 100644 --- a/keyboards/keychron/q3/ansi/ansi.c +++ b/keyboards/keychron/q3/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q3/ansi/config.h b/keyboards/keychron/q3/ansi/config.h index 89300267be..77afc9b9b6 100644 --- a/keyboards/keychron/q3/ansi/config.h +++ b/keyboards/keychron/q3/ansi/config.h @@ -22,7 +22,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 87 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c index 3bee55a63c..a386e87a01 100644 --- a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q3/ansi_encoder/config.h b/keyboards/keychron/q3/ansi_encoder/config.h index 78c82969d0..2a6f9ba4c5 100644 --- a/keyboards/keychron/q3/ansi_encoder/config.h +++ b/keyboards/keychron/q3/ansi_encoder/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 87 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h index 28328358e9..035aea2bb3 100644 --- a/keyboards/keychron/q3/config.h +++ b/keyboards/keychron/q3/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -28,7 +28,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json index 835aea4504..c08d73f26a 100644 --- a/keyboards/keychron/q3/info.json +++ b/keyboards/keychron/q3/info.json @@ -43,7 +43,7 @@ "splash": true, "typing_heatmap": true }, - "driver": "ckled2001" + "driver": "snled27351" }, "url": "https://github.com/Keychron", "usb": { diff --git a/keyboards/keychron/q3/iso/config.h b/keyboards/keychron/q3/iso/config.h index eb141cb270..3ffda1ce1e 100644 --- a/keyboards/keychron/q3/iso/config.h +++ b/keyboards/keychron/q3/iso/config.h @@ -22,7 +22,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 88 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/q3/iso/iso.c b/keyboards/keychron/q3/iso/iso.c index 1c179a34b4..725af67006 100644 --- a/keyboards/keychron/q3/iso/iso.c +++ b/keyboards/keychron/q3/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q3/iso_encoder/config.h b/keyboards/keychron/q3/iso_encoder/config.h index 050c940054..6893c2e8ff 100644 --- a/keyboards/keychron/q3/iso_encoder/config.h +++ b/keyboards/keychron/q3/iso_encoder/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 88 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/q3/iso_encoder/iso_encoder.c b/keyboards/keychron/q3/iso_encoder/iso_encoder.c index 1c179a34b4..725af67006 100644 --- a/keyboards/keychron/q3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q3/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q3/jis/config.h b/keyboards/keychron/q3/jis/config.h index 026fe54568..1ea4386bba 100644 --- a/keyboards/keychron/q3/jis/config.h +++ b/keyboards/keychron/q3/jis/config.h @@ -22,7 +22,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 91 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/jis/jis.c b/keyboards/keychron/q3/jis/jis.c index 9b10f1d103..4b19eca52f 100644 --- a/keyboards/keychron/q3/jis/jis.c +++ b/keyboards/keychron/q3/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q3/jis_encoder/config.h b/keyboards/keychron/q3/jis_encoder/config.h index 13f132c02c..5c5efb4ff6 100644 --- a/keyboards/keychron/q3/jis_encoder/config.h +++ b/keyboards/keychron/q3/jis_encoder/config.h @@ -23,7 +23,7 @@ /* RGB Matrix Configuration */ #define RGB_MATRIX_LED_COUNT 92 -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/q3/jis_encoder/jis_encoder.c b/keyboards/keychron/q3/jis_encoder/jis_encoder.c index 1515e9a353..8770f9d33c 100644 --- a/keyboards/keychron/q3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/q3/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q4/ansi_v1/ansi_v1.c b/keyboards/keychron/q4/ansi_v1/ansi_v1.c index 88599103ef..953da2df8b 100644 --- a/keyboards/keychron/q4/ansi_v1/ansi_v1.c +++ b/keyboards/keychron/q4/ansi_v1/ansi_v1.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q4/ansi_v1/config.h b/keyboards/keychron/q4/ansi_v1/config.h index cf12c75966..1bd02e42a6 100644 --- a/keyboards/keychron/q4/ansi_v1/config.h +++ b/keyboards/keychron/q4/ansi_v1/config.h @@ -17,17 +17,17 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 31 #define DRIVER_2_LED_TOTAL 30 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable CapsLcok LED*/ diff --git a/keyboards/keychron/q4/ansi_v1/info.json b/keyboards/keychron/q4/ansi_v1/info.json index 8ee286c481..78226e1985 100644 --- a/keyboards/keychron/q4/ansi_v1/info.json +++ b/keyboards/keychron/q4/ansi_v1/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/ansi_v2/ansi_v2.c b/keyboards/keychron/q4/ansi_v2/ansi_v2.c index d454a796fa..b09fb7810a 100644 --- a/keyboards/keychron/q4/ansi_v2/ansi_v2.c +++ b/keyboards/keychron/q4/ansi_v2/ansi_v2.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q4/ansi_v2/config.h b/keyboards/keychron/q4/ansi_v2/config.h index 1bcaf204ef..ea9b45607e 100644 --- a/keyboards/keychron/q4/ansi_v2/config.h +++ b/keyboards/keychron/q4/ansi_v2/config.h @@ -17,14 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 61 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable CapsLcok LED*/ diff --git a/keyboards/keychron/q4/ansi_v2/info.json b/keyboards/keychron/q4/ansi_v2/info.json index 8ee286c481..78226e1985 100644 --- a/keyboards/keychron/q4/ansi_v2/info.json +++ b/keyboards/keychron/q4/ansi_v2/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h index b61f8be4a4..e8aed1af0f 100644 --- a/keyboards/keychron/q4/iso/config.h +++ b/keyboards/keychron/q4/iso/config.h @@ -17,14 +17,14 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* RGB Matrix Configuration */ #define DRIVER_1_LED_TOTAL 62 #define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable CapsLcok LED*/ diff --git a/keyboards/keychron/q4/iso/info.json b/keyboards/keychron/q4/iso/info.json index f8945cda61..7143fba9b1 100644 --- a/keyboards/keychron/q4/iso/info.json +++ b/keyboards/keychron/q4/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q4/iso/iso.c b/keyboards/keychron/q4/iso/iso.c index 24cbcfd745..a7c42914d2 100644 --- a/keyboards/keychron/q4/iso/iso.c +++ b/keyboards/keychron/q4/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q5/ansi/ansi.c b/keyboards/keychron/q5/ansi/ansi.c index dda563cd79..8c80245fbc 100644 --- a/keyboards/keychron/q5/ansi/ansi.c +++ b/keyboards/keychron/q5/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q5/ansi/info.json b/keyboards/keychron/q5/ansi/info.json index 55d7ae0165..8795957c45 100644 --- a/keyboards/keychron/q5/ansi/info.json +++ b/keyboards/keychron/q5/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c index 4d3cc0f036..d5f67f1297 100644 --- a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q5/ansi_encoder/info.json b/keyboards/keychron/q5/ansi_encoder/info.json index 468261b1e9..ae4a58e55d 100644 --- a/keyboards/keychron/q5/ansi_encoder/info.json +++ b/keyboards/keychron/q5/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index d459d8c54e..49216fba1f 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -30,11 +30,11 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } /* DIP switch */ diff --git a/keyboards/keychron/q5/iso/info.json b/keyboards/keychron/q5/iso/info.json index 3b0b2ea1a0..2cc2ce9640 100644 --- a/keyboards/keychron/q5/iso/info.json +++ b/keyboards/keychron/q5/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q5/iso/iso.c b/keyboards/keychron/q5/iso/iso.c index 65924abd76..8a7cb863ec 100644 --- a/keyboards/keychron/q5/iso/iso.c +++ b/keyboards/keychron/q5/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q5/iso_encoder/info.json b/keyboards/keychron/q5/iso_encoder/info.json index eefa6dc693..a425cf3145 100644 --- a/keyboards/keychron/q5/iso_encoder/info.json +++ b/keyboards/keychron/q5/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q5/iso_encoder/iso_encoder.c b/keyboards/keychron/q5/iso_encoder/iso_encoder.c index 22ba9e2d4e..009e8043db 100644 --- a/keyboards/keychron/q5/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q5/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c index a81d5f9e9f..80eaad02b3 100644 --- a/keyboards/keychron/q6/ansi/ansi.c +++ b/keyboards/keychron/q6/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q6/ansi/info.json b/keyboards/keychron/q6/ansi/info.json index fdec220e80..108cc46379 100644 --- a/keyboards/keychron/q6/ansi/info.json +++ b/keyboards/keychron/q6/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c index 6fbece3678..9c88533620 100644 --- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q6/ansi_encoder/info.json b/keyboards/keychron/q6/ansi_encoder/info.json index df3902f44a..fc2da19f73 100644 --- a/keyboards/keychron/q6/ansi_encoder/info.json +++ b/keyboards/keychron/q6/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h index 98e3642c4d..8b26545724 100644 --- a/keyboards/keychron/q6/config.h +++ b/keyboards/keychron/q6/config.h @@ -24,11 +24,11 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 } /* DIP switch */ diff --git a/keyboards/keychron/q6/iso/info.json b/keyboards/keychron/q6/iso/info.json index dfaa20aa93..269605ff8b 100644 --- a/keyboards/keychron/q6/iso/info.json +++ b/keyboards/keychron/q6/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c index f2081177e9..d2aa010c05 100644 --- a/keyboards/keychron/q6/iso/iso.c +++ b/keyboards/keychron/q6/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q6/iso_encoder/info.json b/keyboards/keychron/q6/iso_encoder/info.json index 4590616831..e5aa0bd8f5 100644 --- a/keyboards/keychron/q6/iso_encoder/info.json +++ b/keyboards/keychron/q6/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c index e9a6f6edfc..66e066b839 100644 --- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c index bb3c84b64a..ac72737146 100644 --- a/keyboards/keychron/q60/ansi/ansi.c +++ b/keyboards/keychron/q60/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q60/ansi/info.json b/keyboards/keychron/q60/ansi/info.json index 95b1c4e472..f5832b2d8f 100644 --- a/keyboards/keychron/q60/ansi/info.json +++ b/keyboards/keychron/q60/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h index e5d0954ba0..9816ff3479 100644 --- a/keyboards/keychron/q60/config.h +++ b/keyboards/keychron/q60/config.h @@ -17,8 +17,8 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -27,7 +27,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60 } /* DIP switch */ diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c index fffa00194d..8e9b37b806 100644 --- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q65/ansi_encoder/info.json b/keyboards/keychron/q65/ansi_encoder/info.json index 0f7679945a..a42d7d289c 100644 --- a/keyboards/keychron/q65/ansi_encoder/info.json +++ b/keyboards/keychron/q65/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h index 35d05ffab7..43b7ef9b04 100644 --- a/keyboards/keychron/q65/config.h +++ b/keyboards/keychron/q65/config.h @@ -26,9 +26,9 @@ { NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, A2, A3, A4, A5, A6, A7, B0, B1 } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,8 +37,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 30U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 } /* Disable DIP switch in matrix data */ diff --git a/keyboards/keychron/q7/ansi/ansi.c b/keyboards/keychron/q7/ansi/ansi.c index 3dccb8b660..190c110a77 100644 --- a/keyboards/keychron/q7/ansi/ansi.c +++ b/keyboards/keychron/q7/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q7/ansi/info.json b/keyboards/keychron/q7/ansi/info.json index 2549e329f2..717fe357b7 100644 --- a/keyboards/keychron/q7/ansi/info.json +++ b/keyboards/keychron/q7/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h index 125e17a3da..9593196149 100644 --- a/keyboards/keychron/q7/config.h +++ b/keyboards/keychron/q7/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -28,8 +28,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80 } /* DIP switch */ diff --git a/keyboards/keychron/q7/iso/info.json b/keyboards/keychron/q7/iso/info.json index 27262eb4f3..d57c5b17b9 100644 --- a/keyboards/keychron/q7/iso/info.json +++ b/keyboards/keychron/q7/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/q7/iso/iso.c b/keyboards/keychron/q7/iso/iso.c index 039bd13836..13354b9f0b 100644 --- a/keyboards/keychron/q7/iso/iso.c +++ b/keyboards/keychron/q7/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q8/ansi/ansi.c b/keyboards/keychron/q8/ansi/ansi.c index e9c4edeb3e..3bb10b383d 100644 --- a/keyboards/keychron/q8/ansi/ansi.c +++ b/keyboards/keychron/q8/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q8/ansi/info.json b/keyboards/keychron/q8/ansi/info.json index 7ee5b6c21f..f733004270 100644 --- a/keyboards/keychron/q8/ansi/info.json +++ b/keyboards/keychron/q8/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c index e9c4edeb3e..3bb10b383d 100644 --- a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q8/ansi_encoder/info.json b/keyboards/keychron/q8/ansi_encoder/info.json index a4c3ac77e1..ccf9453d53 100644 --- a/keyboards/keychron/q8/ansi_encoder/info.json +++ b/keyboards/keychron/q8/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h index 4b6d5f1614..7b23723f99 100644 --- a/keyboards/keychron/q8/config.h +++ b/keyboards/keychron/q8/config.h @@ -20,9 +20,9 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,8 +31,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } /* DIP switch */ diff --git a/keyboards/keychron/q8/iso/info.json b/keyboards/keychron/q8/iso/info.json index 03a6cd1fdd..28d586984e 100644 --- a/keyboards/keychron/q8/iso/info.json +++ b/keyboards/keychron/q8/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/iso/iso.c b/keyboards/keychron/q8/iso/iso.c index 205989383e..dbcefd76c0 100644 --- a/keyboards/keychron/q8/iso/iso.c +++ b/keyboards/keychron/q8/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q8/iso_encoder/info.json b/keyboards/keychron/q8/iso_encoder/info.json index eb9dc22503..0d96f3f193 100644 --- a/keyboards/keychron/q8/iso_encoder/info.json +++ b/keyboards/keychron/q8/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/q8/iso_encoder/iso_encoder.c b/keyboards/keychron/q8/iso_encoder/iso_encoder.c index 205989383e..dbcefd76c0 100644 --- a/keyboards/keychron/q8/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q8/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q9/ansi/ansi.c b/keyboards/keychron/q9/ansi/ansi.c index b98149a5f8..9178c8dcc7 100644 --- a/keyboards/keychron/q9/ansi/ansi.c +++ b/keyboards/keychron/q9/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q9/ansi/info.json b/keyboards/keychron/q9/ansi/info.json index 952d3158c8..ccb29a749b 100644 --- a/keyboards/keychron/q9/ansi/info.json +++ b/keyboards/keychron/q9/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c index de0eda1c02..58d66e0473 100644 --- a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q9/ansi_encoder/info.json b/keyboards/keychron/q9/ansi_encoder/info.json index 4fd5352638..3826a1b768 100644 --- a/keyboards/keychron/q9/ansi_encoder/info.json +++ b/keyboards/keychron/q9/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index de5795a5f6..e423d962e0 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -23,8 +23,8 @@ #define DIP_SWITCH_MATRIX_GRID { { 3, 4 } } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -33,7 +33,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/q9/iso/info.json b/keyboards/keychron/q9/iso/info.json index 3e9a7690c1..a9586d6d91 100644 --- a/keyboards/keychron/q9/iso/info.json +++ b/keyboards/keychron/q9/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/iso/iso.c b/keyboards/keychron/q9/iso/iso.c index 0e258e8c63..1917b61f37 100644 --- a/keyboards/keychron/q9/iso/iso.c +++ b/keyboards/keychron/q9/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q9/iso_encoder/info.json b/keyboards/keychron/q9/iso_encoder/info.json index ecf944744d..1c74566da1 100644 --- a/keyboards/keychron/q9/iso_encoder/info.json +++ b/keyboards/keychron/q9/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/q9/iso_encoder/iso_encoder.c b/keyboards/keychron/q9/iso_encoder/iso_encoder.c index 0804f33671..3a161fe9d7 100644 --- a/keyboards/keychron/q9/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q9/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c index c0b4b3a32d..d264334fa0 100755 --- a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c @@ -17,8 +17,8 @@ #include "quantum.h" #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 diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h index a8cba07e90..8416de0d6a 100755 --- a/keyboards/keychron/q9_plus/config.h +++ b/keyboards/keychron/q9_plus/config.h @@ -23,8 +23,8 @@ #define DIP_SWITCH_MATRIX_GRID {{ 3, 4 }} /* RGB Matrix Driver Configuration */ -#define DRIVER_COUNT 1 -#define DRIVER_ADDR_1 0b1110100 +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -34,7 +34,7 @@ #define I2C1_TIMINGR_SCLL 51U /* Set LED driver current */ -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } /* turn off effects when suspended */ diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json index c56650cb1d..9f8703de37 100755 --- a/keyboards/keychron/q9_plus/info.json +++ b/keyboards/keychron/q9_plus/info.json @@ -96,7 +96,7 @@ } }, "rgb_matrix": { - "driver": "ckled2001", + "driver": "snled27351", "animations": { "breathing": true, "band_spiral_val": true, diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h index 1f77559339..21569bd07c 100644 --- a/keyboards/keychron/s1/ansi/rgb/config.h +++ b/keyboards/keychron/s1/ansi/rgb/config.h @@ -17,15 +17,15 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_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) -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48 } /* Disable RGB lighting when PC is in suspend */ diff --git a/keyboards/keychron/s1/ansi/rgb/info.json b/keyboards/keychron/s1/ansi/rgb/info.json index 3bef5f343c..6b49cb18e0 100644 --- a/keyboards/keychron/s1/ansi/rgb/info.json +++ b/keyboards/keychron/s1/ansi/rgb/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c index a0a2d25f94..ca39b0c796 100644 --- a/keyboards/keychron/s1/ansi/rgb/rgb.c +++ b/keyboards/keychron/s1/ansi/rgb/rgb.c @@ -20,8 +20,8 @@ // clang-format off -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 diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h index 02eeb7fc81..0ee5470f69 100644 --- a/keyboards/keychron/s1/ansi/white/config.h +++ b/keyboards/keychron/s1/ansi/white/config.h @@ -17,13 +17,13 @@ #pragma once /* LED Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND #define DRIVER_1_LED_TOTAL 84 #define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_6CHANNEL -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_6CHANNEL +#define SNLED27351_CURRENT_TUNE \ { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } // 250mA // { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 } // 127mA diff --git a/keyboards/keychron/s1/ansi/white/info.json b/keyboards/keychron/s1/ansi/white/info.json index ff0a6b69cb..bcd64eea59 100644 --- a/keyboards/keychron/s1/ansi/white/info.json +++ b/keyboards/keychron/s1/ansi/white/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "led_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"], diff --git a/keyboards/keychron/s1/ansi/white/white.c b/keyboards/keychron/s1/ansi/white/white.c index e41ba06401..b3a49ae9eb 100644 --- a/keyboards/keychron/s1/ansi/white/white.c +++ b/keyboards/keychron/s1/ansi/white/white.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = { -/* Refer to CKLED2001 manual for these locations +const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = { +/* Refer to SNLED27351 manual for these locations * driver * | LED address * | | */ diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c index dc488d1b73..ed8a6ed1af 100644 --- a/keyboards/keychron/v1/ansi/ansi.c +++ b/keyboards/keychron/v1/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v1/ansi/config.h b/keyboards/keychron/v1/ansi/config.h index 143042076d..5d10cae886 100644 --- a/keyboards/keychron/v1/ansi/config.h +++ b/keyboards/keychron/v1/ansi/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 37 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v1/ansi/info.json b/keyboards/keychron/v1/ansi/info.json index f4c526bfdc..34fdd6ac31 100644 --- a/keyboards/keychron/v1/ansi/info.json +++ b/keyboards/keychron/v1/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c index dc488d1b73..ed8a6ed1af 100644 --- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v1/ansi_encoder/config.h b/keyboards/keychron/v1/ansi_encoder/config.h index c32e4d104a..ea0733eeaf 100644 --- a/keyboards/keychron/v1/ansi_encoder/config.h +++ b/keyboards/keychron/v1/ansi_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 37 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Encoder Configuration */ diff --git a/keyboards/keychron/v1/ansi_encoder/info.json b/keyboards/keychron/v1/ansi_encoder/info.json index 9beffb9f6a..43e07609ae 100644 --- a/keyboards/keychron/v1/ansi_encoder/info.json +++ b/keyboards/keychron/v1/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h index 8edbf05ca8..e08a27f1c3 100644 --- a/keyboards/keychron/v1/config.h +++ b/keyboards/keychron/v1/config.h @@ -32,9 +32,9 @@ #define DIP_SWITCH_MATRIX_GRID { {5,4} } /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -43,7 +43,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED diff --git a/keyboards/keychron/v1/iso/config.h b/keyboards/keychron/v1/iso/config.h index 13ebd695f3..acb35ac7ac 100644 --- a/keyboards/keychron/v1/iso/config.h +++ b/keyboards/keychron/v1/iso/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v1/iso/info.json b/keyboards/keychron/v1/iso/info.json index 5a4c74234c..6dbf50a931 100644 --- a/keyboards/keychron/v1/iso/info.json +++ b/keyboards/keychron/v1/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c index 1d9ef76997..00909c85e3 100644 --- a/keyboards/keychron/v1/iso/iso.c +++ b/keyboards/keychron/v1/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v1/iso_encoder/config.h b/keyboards/keychron/v1/iso_encoder/config.h index fd231aa98a..1a928cd9b7 100644 --- a/keyboards/keychron/v1/iso_encoder/config.h +++ b/keyboards/keychron/v1/iso_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 38 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 } /* Encoder Configuration */ diff --git a/keyboards/keychron/v1/iso_encoder/info.json b/keyboards/keychron/v1/iso_encoder/info.json index 106b43b5e7..1f009ac0c7 100644 --- a/keyboards/keychron/v1/iso_encoder/info.json +++ b/keyboards/keychron/v1/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c index 1d9ef76997..00909c85e3 100644 --- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v1/jis/config.h b/keyboards/keychron/v1/jis/config.h index 474a84c8b9..ef778528fe 100644 --- a/keyboards/keychron/v1/jis/config.h +++ b/keyboards/keychron/v1/jis/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 40 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v1/jis/info.json b/keyboards/keychron/v1/jis/info.json index 16365ccd9e..28425b5b50 100644 --- a/keyboards/keychron/v1/jis/info.json +++ b/keyboards/keychron/v1/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c index 7f2f02bfa5..6bc647656d 100644 --- a/keyboards/keychron/v1/jis/jis.c +++ b/keyboards/keychron/v1/jis/jis.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v1/jis_encoder/config.h b/keyboards/keychron/v1/jis_encoder/config.h index 93d2a72d98..25db44a84c 100644 --- a/keyboards/keychron/v1/jis_encoder/config.h +++ b/keyboards/keychron/v1/jis_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 40 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D } /* Encoder Configuration */ diff --git a/keyboards/keychron/v1/jis_encoder/info.json b/keyboards/keychron/v1/jis_encoder/info.json index 702e579758..018f154537 100644 --- a/keyboards/keychron/v1/jis_encoder/info.json +++ b/keyboards/keychron/v1/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c index 7f2f02bfa5..6bc647656d 100644 --- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c index bada8af6e9..8b787aad18 100644 --- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v10/ansi_encoder/info.json b/keyboards/keychron/v10/ansi_encoder/info.json index 2a7dc307cb..a416601d02 100644 --- a/keyboards/keychron/v10/ansi_encoder/info.json +++ b/keyboards/keychron/v10/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h index b8aa40a186..e711b753dd 100644 --- a/keyboards/keychron/v10/config.h +++ b/keyboards/keychron/v10/config.h @@ -31,9 +31,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -42,8 +42,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5,5} } diff --git a/keyboards/keychron/v10/iso_encoder/info.json b/keyboards/keychron/v10/iso_encoder/info.json index 455b375472..4c6b6580e0 100644 --- a/keyboards/keychron/v10/iso_encoder/info.json +++ b/keyboards/keychron/v10/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c index 070a01a8a8..f7e0a10470 100644 --- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c index a2524d36cc..d98a96fdf9 100644 --- a/keyboards/keychron/v2/ansi/ansi.c +++ b/keyboards/keychron/v2/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v2/ansi/config.h b/keyboards/keychron/v2/ansi/config.h index b6c31201a7..094038d5b3 100644 --- a/keyboards/keychron/v2/ansi/config.h +++ b/keyboards/keychron/v2/ansi/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 33 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v2/ansi/info.json b/keyboards/keychron/v2/ansi/info.json index d07fba97b8..3b54b90201 100644 --- a/keyboards/keychron/v2/ansi/info.json +++ b/keyboards/keychron/v2/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c index 2c9fe0e8e2..64153d4251 100644 --- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v2/ansi_encoder/info.json b/keyboards/keychron/v2/ansi_encoder/info.json index c733b389e6..f1998272e9 100644 --- a/keyboards/keychron/v2/ansi_encoder/info.json +++ b/keyboards/keychron/v2/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h index 8e881da987..8ac0bea5f0 100644 --- a/keyboards/keychron/v2/config.h +++ b/keyboards/keychron/v2/config.h @@ -20,9 +20,9 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* Disable DIP switch in matrix data */ #define MATRIX_MASKED diff --git a/keyboards/keychron/v2/iso/info.json b/keyboards/keychron/v2/iso/info.json index 0d8376f7b7..cfc5ef3c5b 100644 --- a/keyboards/keychron/v2/iso/info.json +++ b/keyboards/keychron/v2/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c index 385f566252..37cac7337d 100644 --- a/keyboards/keychron/v2/iso/iso.c +++ b/keyboards/keychron/v2/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v2/iso_encoder/info.json b/keyboards/keychron/v2/iso_encoder/info.json index 0241cdb21e..d5f630a3c3 100644 --- a/keyboards/keychron/v2/iso_encoder/info.json +++ b/keyboards/keychron/v2/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c index 385f566252..37cac7337d 100644 --- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v2/jis/config.h b/keyboards/keychron/v2/jis/config.h index f258f9edd1..1b3fd5a27a 100644 --- a/keyboards/keychron/v2/jis/config.h +++ b/keyboards/keychron/v2/jis/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D } /* Enable caps-lock LED */ diff --git a/keyboards/keychron/v2/jis/info.json b/keyboards/keychron/v2/jis/info.json index f65e2b51d2..124cb0ecc6 100644 --- a/keyboards/keychron/v2/jis/info.json +++ b/keyboards/keychron/v2/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c index b9060cafb2..42285e56ca 100644 --- a/keyboards/keychron/v2/jis/jis.c +++ b/keyboards/keychron/v2/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v2/jis_encoder/config.h b/keyboards/keychron/v2/jis_encoder/config.h index a9a3438ab7..aacac818a4 100644 --- a/keyboards/keychron/v2/jis_encoder/config.h +++ b/keyboards/keychron/v2/jis_encoder/config.h @@ -21,7 +21,7 @@ #define DRIVER_2_LED_TOTAL 36 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D } /* Encoder Configuration */ diff --git a/keyboards/keychron/v2/jis_encoder/info.json b/keyboards/keychron/v2/jis_encoder/info.json index 263e403167..d3df93819f 100644 --- a/keyboards/keychron/v2/jis_encoder/info.json +++ b/keyboards/keychron/v2/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c index 661ee0c1d6..5ccbb807cb 100644 --- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c index 6d56122c52..16d6b77131 100644 --- a/keyboards/keychron/v3/ansi/ansi.c +++ b/keyboards/keychron/v3/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v3/ansi/config.h b/keyboards/keychron/v3/ansi/config.h index ff756dc046..ba64aa96da 100644 --- a/keyboards/keychron/v3/ansi/config.h +++ b/keyboards/keychron/v3/ansi/config.h @@ -30,7 +30,7 @@ #define DRIVER_2_LED_TOTAL 39 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/v3/ansi/info.json b/keyboards/keychron/v3/ansi/info.json index 6572066329..49792690a7 100644 --- a/keyboards/keychron/v3/ansi/info.json +++ b/keyboards/keychron/v3/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c index 5ed38074e3..39fa354539 100644 --- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v3/ansi_encoder/info.json b/keyboards/keychron/v3/ansi_encoder/info.json index cffbc85158..ad46ae7a62 100644 --- a/keyboards/keychron/v3/ansi_encoder/info.json +++ b/keyboards/keychron/v3/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h index 8757f6bace..a6a6394ffd 100644 --- a/keyboards/keychron/v3/config.h +++ b/keyboards/keychron/v3/config.h @@ -20,9 +20,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,7 +31,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/v3/iso/info.json b/keyboards/keychron/v3/iso/info.json index 18c73a8f58..56796b5eb2 100644 --- a/keyboards/keychron/v3/iso/info.json +++ b/keyboards/keychron/v3/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c index 95b324d11b..24b406467a 100644 --- a/keyboards/keychron/v3/iso/iso.c +++ b/keyboards/keychron/v3/iso/iso.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v3/iso_encoder/info.json b/keyboards/keychron/v3/iso_encoder/info.json index 60c56a6b87..057e4a8d7d 100644 --- a/keyboards/keychron/v3/iso_encoder/info.json +++ b/keyboards/keychron/v3/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c index 6231172fde..53fe99aac0 100644 --- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v3/jis/config.h b/keyboards/keychron/v3/jis/config.h index f19e7538c2..10c77c74f0 100644 --- a/keyboards/keychron/v3/jis/config.h +++ b/keyboards/keychron/v3/jis/config.h @@ -30,7 +30,7 @@ #define DRIVER_2_LED_TOTAL 43 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Enable CapsLcok LED */ diff --git a/keyboards/keychron/v3/jis/info.json b/keyboards/keychron/v3/jis/info.json index 9b97707b2f..d5601a3b34 100644 --- a/keyboards/keychron/v3/jis/info.json +++ b/keyboards/keychron/v3/jis/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c index 7e05aa4063..70dbf812fa 100644 --- a/keyboards/keychron/v3/jis/jis.c +++ b/keyboards/keychron/v3/jis/jis.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v3/jis_encoder/config.h b/keyboards/keychron/v3/jis_encoder/config.h index 5f67d6a870..27f37cbed4 100644 --- a/keyboards/keychron/v3/jis_encoder/config.h +++ b/keyboards/keychron/v3/jis_encoder/config.h @@ -27,7 +27,7 @@ #define DRIVER_2_LED_TOTAL 43 #define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 } /* Encoder Configuration */ diff --git a/keyboards/keychron/v3/jis_encoder/info.json b/keyboards/keychron/v3/jis_encoder/info.json index 585cf4519e..968c0396e9 100644 --- a/keyboards/keychron/v3/jis_encoder/info.json +++ b/keyboards/keychron/v3/jis_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c index 41b1c1e5af..cf1065eed9 100644 --- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c index 44056459f9..6326405380 100644 --- a/keyboards/keychron/v4/ansi/ansi.c +++ b/keyboards/keychron/v4/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v4/ansi/info.json b/keyboards/keychron/v4/ansi/info.json index 812aec53a7..5fad0ca9b1 100644 --- a/keyboards/keychron/v4/ansi/info.json +++ b/keyboards/keychron/v4/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h index 2fc94aaaee..fb0b2cd276 100644 --- a/keyboards/keychron/v4/config.h +++ b/keyboards/keychron/v4/config.h @@ -17,8 +17,8 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 1 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO +#define SNLED27351_DRIVER_COUNT 1 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -27,7 +27,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60 } /* DIP switch */ diff --git a/keyboards/keychron/v4/iso/info.json b/keyboards/keychron/v4/iso/info.json index 7d4a8eae1d..a53d3ee6a4 100644 --- a/keyboards/keychron/v4/iso/info.json +++ b/keyboards/keychron/v4/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"], diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c index 8f86aa0498..9116135a4a 100644 --- a/keyboards/keychron/v4/iso/iso.c +++ b/keyboards/keychron/v4/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c index f4525dc3dc..073fb0cde0 100644 --- a/keyboards/keychron/v5/ansi/ansi.c +++ b/keyboards/keychron/v5/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v5/ansi/info.json b/keyboards/keychron/v5/ansi/info.json index bc5eec2ca5..eb5cdca90b 100644 --- a/keyboards/keychron/v5/ansi/info.json +++ b/keyboards/keychron/v5/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c index 1e3b303896..62ebc3f7b3 100644 --- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v5/ansi_encoder/info.json b/keyboards/keychron/v5/ansi_encoder/info.json index 8a4aec4e36..00079fca47 100644 --- a/keyboards/keychron/v5/ansi_encoder/info.json +++ b/keyboards/keychron/v5/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h index 0ee5e4e46b..bca7f6d1cf 100644 --- a/keyboards/keychron/v5/config.h +++ b/keyboards/keychron/v5/config.h @@ -26,9 +26,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -37,7 +37,7 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_CURRENT_TUNE \ +#define SNLED27351_CURRENT_TUNE \ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } /* DIP switch */ diff --git a/keyboards/keychron/v5/iso/info.json b/keyboards/keychron/v5/iso/info.json index 02db87e9ac..badac7f49a 100644 --- a/keyboards/keychron/v5/iso/info.json +++ b/keyboards/keychron/v5/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c index d67be2d530..1552de7d47 100644 --- a/keyboards/keychron/v5/iso/iso.c +++ b/keyboards/keychron/v5/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v5/iso_encoder/info.json b/keyboards/keychron/v5/iso_encoder/info.json index b0be43fc50..cbf77fc93a 100644 --- a/keyboards/keychron/v5/iso_encoder/info.json +++ b/keyboards/keychron/v5/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c index 5719da5e34..95eb62ae1f 100644 --- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c index 4011529883..a3f1032a1e 100644 --- a/keyboards/keychron/v6/ansi/ansi.c +++ b/keyboards/keychron/v6/ansi/ansi.c @@ -18,8 +18,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v6/ansi/info.json b/keyboards/keychron/v6/ansi/info.json index 3f12305f06..3eee229ea8 100644 --- a/keyboards/keychron/v6/ansi/info.json +++ b/keyboards/keychron/v6/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c index 91831bf3c1..02e0de0b3d 100644 --- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v6/ansi_encoder/info.json b/keyboards/keychron/v6/ansi_encoder/info.json index ad0ea78318..86ecc82e35 100644 --- a/keyboards/keychron/v6/ansi_encoder/info.json +++ b/keyboards/keychron/v6/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h index e836cced84..2ff53f2a67 100644 --- a/keyboards/keychron/v6/config.h +++ b/keyboards/keychron/v6/config.h @@ -20,9 +20,9 @@ #define DIODE_DIRECTION ROW2COL /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -32,7 +32,7 @@ #define I2C1_TIMINGR_SCLL 51U /* Limit the maximum brigtness current of colour white to 500mA */ -#define CKLED2001_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 } +#define SNLED27351_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {5, 4} } diff --git a/keyboards/keychron/v6/iso/info.json b/keyboards/keychron/v6/iso/info.json index 0840ee9cc8..242e904cf0 100644 --- a/keyboards/keychron/v6/iso/info.json +++ b/keyboards/keychron/v6/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "processor": "STM32L432", "bootloader": "stm32-dfu", diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c index 5c0e2fa396..7804ca3600 100644 --- a/keyboards/keychron/v6/iso/iso.c +++ b/keyboards/keychron/v6/iso/iso.c @@ -20,8 +20,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v6/iso_encoder/info.json b/keyboards/keychron/v6/iso_encoder/info.json index a40d4d66b6..d4237a69f4 100644 --- a/keyboards/keychron/v6/iso_encoder/info.json +++ b/keyboards/keychron/v6/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "encoder": { "rotary": [ diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c index 8268e5b0a9..bd9189f8b5 100644 --- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ #ifdef RGB_MATRIX_ENABLE -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c index c0deea7845..07a98622a4 100644 --- a/keyboards/keychron/v7/ansi/ansi.c +++ b/keyboards/keychron/v7/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v7/ansi/info.json b/keyboards/keychron/v7/ansi/info.json index 26f31786b5..4088a20ced 100644 --- a/keyboards/keychron/v7/ansi/info.json +++ b/keyboards/keychron/v7/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h index 606f682719..e66866a33c 100644 --- a/keyboards/keychron/v7/config.h +++ b/keyboards/keychron/v7/config.h @@ -17,9 +17,9 @@ #pragma once /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -28,8 +28,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 } +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {4,4} } diff --git a/keyboards/keychron/v7/iso/info.json b/keyboards/keychron/v7/iso/info.json index f29d9d9a32..97588498ed 100644 --- a/keyboards/keychron/v7/iso/info.json +++ b/keyboards/keychron/v7/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"], diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c index 4630059be4..a35dcb2092 100644 --- a/keyboards/keychron/v7/iso/iso.c +++ b/keyboards/keychron/v7/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c index 670ff2fbdb..bda7ba1d74 100644 --- a/keyboards/keychron/v8/ansi/ansi.c +++ b/keyboards/keychron/v8/ansi/ansi.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v8/ansi/info.json b/keyboards/keychron/v8/ansi/info.json index 02780ffcde..06a657a5a8 100644 --- a/keyboards/keychron/v8/ansi/info.json +++ b/keyboards/keychron/v8/ansi/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c index 670ff2fbdb..bda7ba1d74 100644 --- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v8/ansi_encoder/info.json b/keyboards/keychron/v8/ansi_encoder/info.json index c3fc389780..6202a306c5 100644 --- a/keyboards/keychron/v8/ansi_encoder/info.json +++ b/keyboards/keychron/v8/ansi_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h index 3dc6d58518..ed4d98799a 100644 --- a/keyboards/keychron/v8/config.h +++ b/keyboards/keychron/v8/config.h @@ -20,9 +20,9 @@ // #define MATRIX_UNSELECT_DRIVE_HIGH /* RGB Matrix Driver Configuration */ -#define CKLED2001_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 CKLED2001_I2C_ADDRESS_VDDIO -#define DRIVER_ADDR_2 CKLED2001_I2C_ADDRESS_GND +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_VDDIO +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_GND /* Increase I2C speed to 1000 KHz */ #define I2C1_TIMINGR_PRESC 0U @@ -31,8 +31,8 @@ #define I2C1_TIMINGR_SCLH 15U #define I2C1_TIMINGR_SCLL 51U -#define CKLED2001_PHASE_CHANNEL CKLED2001_MSKPHASE_9CHANNEL -#define CKLED2001_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } +#define SNLED27351_PHASE_CHANNEL SNLED27351_MSKPHASE_9CHANNEL +#define SNLED27351_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 } /* DIP switch */ #define DIP_SWITCH_MATRIX_GRID { {4, 4} } diff --git a/keyboards/keychron/v8/iso/info.json b/keyboards/keychron/v8/iso/info.json index 5f30af5b1a..8b40b7d065 100644 --- a/keyboards/keychron/v8/iso/info.json +++ b/keyboards/keychron/v8/iso/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c index f64d3c4c56..88040c3ab8 100644 --- a/keyboards/keychron/v8/iso/iso.c +++ b/keyboards/keychron/v8/iso/iso.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/keychron/v8/iso_encoder/info.json b/keyboards/keychron/v8/iso_encoder/info.json index e13261a2d6..3d04699651 100644 --- a/keyboards/keychron/v8/iso_encoder/info.json +++ b/keyboards/keychron/v8/iso_encoder/info.json @@ -9,7 +9,7 @@ "device_version": "1.0.0" }, "rgb_matrix": { - "driver": "ckled2001" + "driver": "snled27351" }, "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"], diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c index f64d3c4c56..88040c3ab8 100644 --- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c @@ -20,8 +20,8 @@ // clang-format off -const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to CKLED 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 diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h index efec0207c3..9c25c9f21c 100644 --- a/keyboards/monsgeek/m1/config.h +++ b/keyboards/monsgeek/m1/config.h @@ -33,9 +33,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json index 3eade9d76d..23d3d714c6 100644 --- a/keyboards/monsgeek/m1/info.json +++ b/keyboards/monsgeek/m1/info.json @@ -42,7 +42,7 @@ ] }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 200, "val_steps": 20, "animations": { diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c index ac00bb4e2b..b85adbc0bf 100644 --- a/keyboards/monsgeek/m1/m1.c +++ b/keyboards/monsgeek/m1/m1.c @@ -17,8 +17,8 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h index ef2a43cdb3..ddb700870b 100644 --- a/keyboards/monsgeek/m5/config.h +++ b/keyboards/monsgeek/m5/config.h @@ -34,9 +34,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ #define I2C1_SCL_PAL_MODE 4 diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json index 7b01d2526d..e4ecba91ce 100644 --- a/keyboards/monsgeek/m5/info.json +++ b/keyboards/monsgeek/m5/info.json @@ -40,7 +40,7 @@ "caps_lock": "C10" }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 180, "animations": { "breathing": true, diff --git a/keyboards/monsgeek/m5/m5.c b/keyboards/monsgeek/m5/m5.c index 7dbc3111bf..83dd4b6b79 100644 --- a/keyboards/monsgeek/m5/m5.c +++ b/keyboards/monsgeek/m5/m5.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h index fac90ac0ad..b10220db17 100644 --- a/keyboards/monsgeek/m6/config.h +++ b/keyboards/monsgeek/m6/config.h @@ -31,9 +31,9 @@ #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12 /* I2C Config for LED Driver */ -#define IS31FL3733_DRIVER_COUNT 2 -#define DRIVER_ADDR_1 0b1110100 -#define DRIVER_ADDR_2 0b1110111 +#define SNLED27351_DRIVER_COUNT 2 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND +#define DRIVER_ADDR_2 SNLED27351_I2C_ADDRESS_VDDIO #define I2C1_SCL_PAL_MODE 4 #define I2C1_OPMODE OPMODE_I2C #define I2C1_CLOCK_SPEED 400000 /* 400000 */ diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json index d3951c8046..3ec89cc497 100644 --- a/keyboards/monsgeek/m6/info.json +++ b/keyboards/monsgeek/m6/info.json @@ -36,7 +36,7 @@ } }, "rgb_matrix": { - "driver": "is31fl3733", + "driver": "snled27351", "max_brightness": 200, "val_steps": 20, "animations": { diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c index 1823d865cc..dc20a9916f 100644 --- a/keyboards/monsgeek/m6/m6.c +++ b/keyboards/monsgeek/m6/m6.c @@ -17,8 +17,8 @@ #include "quantum.h" // clang-format off #ifdef RGB_MATRIX_ENABLE -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { -/* Refer to IS31 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 diff --git a/keyboards/skyloong/gk61/v1/config.h b/keyboards/skyloong/gk61/v1/config.h index f648bf80d4..153bd8d0eb 100644 --- a/keyboards/skyloong/gk61/v1/config.h +++ b/keyboards/skyloong/gk61/v1/config.h @@ -15,22 +15,9 @@ */ #pragma once -/* - * RGB matrix driver config (CKLED2001) - * - * This is a 7-bit address, that gets left-shifted and bit 0 - * set to 0 for write, 1 for read (as per I2C protocol) - * The address will vary depending on your wiring: - * 00 <-> GND - * 01 <-> SCL - * 10 <-> SDA - * 11 <-> VCC - * ADDR/CS represents A1:A0 of the 7-bit address. - * The result is: 0b11101(ADDR/CS) - */ -#define DRIVER_ADDR_1 0b1110100 +#define DRIVER_ADDR_1 SNLED27351_I2C_ADDRESS_GND -#define DRIVER_COUNT 1 +#define SNLED27351_DRIVER_COUNT 1 #define RGB_MATRIX_LED_COUNT 64 #define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects diff --git a/keyboards/skyloong/gk61/v1/info.json b/keyboards/skyloong/gk61/v1/info.json index 8e30cc3bc0..6015efa12c 100644 --- a/keyboards/skyloong/gk61/v1/info.json +++ b/keyboards/skyloong/gk61/v1/info.json @@ -42,7 +42,7 @@ "splash": true, "solid_splash": true }, - "driver": "ckled2001", + "driver": "snled27351", "hue_steps": 20, "layout": [ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, diff --git a/keyboards/skyloong/gk61/v1/v1.c b/keyboards/skyloong/gk61/v1/v1.c index 5fed5701b2..cb3772f6b4 100644 --- a/keyboards/skyloong/gk61/v1/v1.c +++ b/keyboards/skyloong/gk61/v1/v1.c @@ -17,8 +17,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 diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 47803d2423..77d4f558ac 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -45,8 +45,8 @@ #if defined(IS31FLCOMMON) # include "is31flcommon.h" #endif -#ifdef LED_MATRIX_CKLED2001 -# include "ckled2001-simple.h" +#ifdef LED_MATRIX_SNLED27351 +# include "snled27351-simple.h" #endif #ifndef LED_MATRIX_TIMEOUT diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c index 771ce820af..f52870aea5 100644 --- a/quantum/led_matrix/led_matrix_drivers.c +++ b/quantum/led_matrix/led_matrix_drivers.c @@ -25,7 +25,7 @@ * in their own files. */ -#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(LED_MATRIX_IS31FL3737) || defined(LED_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(LED_MATRIX_CKLED2001) +#if defined(LED_MATRIX_IS31FL3218) || defined(LED_MATRIX_IS31FL3731) || defined(LED_MATRIX_IS31FL3733) || defined(LED_MATRIX_IS31FL3736) || defined(LED_MATRIX_IS31FL3737) || defined(LED_MATRIX_IS31FL3741) || defined(IS31FLCOMMON) || defined(LED_MATRIX_SNLED27351) # include "i2c_master.h" static void init(void) { @@ -117,19 +117,19 @@ static void init(void) { # endif # endif # endif -# elif defined(LED_MATRIX_CKLED2001) +# elif defined(LED_MATRIX_SNLED27351) # if defined(LED_DRIVER_SHUTDOWN_PIN) setPinOutput(LED_DRIVER_SHUTDOWN_PIN); writePinHigh(LED_DRIVER_SHUTDOWN_PIN); # endif - ckled2001_init(DRIVER_ADDR_1); + snled27351_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - ckled2001_init(DRIVER_ADDR_2); + snled27351_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - ckled2001_init(DRIVER_ADDR_3); + snled27351_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - ckled2001_init(DRIVER_ADDR_4); + snled27351_init(DRIVER_ADDR_4); # endif # endif # endif @@ -150,8 +150,8 @@ static void init(void) { is31fl3741_set_led_control_register(index, true); # elif defined(IS31FLCOMMON) IS31FL_simple_set_scaling_buffer(index, true); -# elif defined(LED_MATRIX_CKLED2001) - ckled2001_set_led_control_register(index, true); +# elif defined(LED_MATRIX_SNLED27351) + snled27351_set_led_control_register(index, true); # endif } @@ -233,14 +233,14 @@ static void init(void) { # endif # endif # endif -# elif defined(LED_MATRIX_CKLED2001) - ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); +# elif defined(LED_MATRIX_SNLED27351) + snled27351_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); + snled27351_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2); + snled27351_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3); + snled27351_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -384,15 +384,15 @@ const led_matrix_driver_t led_matrix_driver = { .set_value = IS31FL_simple_set_brightness, .set_value_all = IS31FL_simple_set_brigntness_all, }; -# elif defined(LED_MATRIX_CKLED2001) +# elif defined(LED_MATRIX_SNLED27351) static void flush(void) { - ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); + snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1); + snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2); + snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3); + snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -401,8 +401,8 @@ static void flush(void) { const led_matrix_driver_t led_matrix_driver = { .init = init, .flush = flush, - .set_value = ckled2001_set_value, - .set_value_all = ckled2001_set_value_all, + .set_value = snled27351_set_value, + .set_value_all = snled27351_set_value_all, }; # endif #endif diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index 3e1db3cdce..8ac263c635 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -38,8 +38,8 @@ # include "is31fl3741.h" #elif defined(IS31FLCOMMON) # include "is31flcommon.h" -#elif defined(RGB_MATRIX_CKLED2001) -# include "ckled2001.h" +#elif defined(RGB_MATRIX_SNLED27351) +# include "snled27351.h" #elif defined(RGB_MATRIX_AW20216S) # include "aw20216s.h" #elif defined(RGB_MATRIX_WS2812) diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c index 58b707bf7f..06d82b9c69 100644 --- a/quantum/rgb_matrix/rgb_matrix_drivers.c +++ b/quantum/rgb_matrix/rgb_matrix_drivers.c @@ -24,7 +24,7 @@ * be here if shared between boards. */ -#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_CKLED2001) +#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 @@ -124,14 +124,14 @@ static void init(void) { # endif # endif -# elif defined(RGB_MATRIX_CKLED2001) - ckled2001_init(DRIVER_ADDR_1); +# elif defined(RGB_MATRIX_SNLED27351) + snled27351_init(DRIVER_ADDR_1); # if defined(DRIVER_ADDR_2) - ckled2001_init(DRIVER_ADDR_2); + snled27351_init(DRIVER_ADDR_2); # if defined(DRIVER_ADDR_3) - ckled2001_init(DRIVER_ADDR_3); + snled27351_init(DRIVER_ADDR_3); # if defined(DRIVER_ADDR_4) - ckled2001_init(DRIVER_ADDR_4); + snled27351_init(DRIVER_ADDR_4); # endif # endif # endif @@ -155,8 +155,8 @@ static void init(void) { is31fl3741_set_led_control_register(index, enabled, enabled, enabled); # elif defined(IS31FLCOMMON) IS31FL_RGB_set_scaling_buffer(index, enabled, enabled, enabled); -# elif defined(RGB_MATRIX_CKLED2001) - ckled2001_set_led_control_register(index, enabled, enabled, enabled); +# elif defined(RGB_MATRIX_SNLED27351) + snled27351_set_led_control_register(index, enabled, enabled, enabled); # endif } @@ -239,14 +239,14 @@ static void init(void) { # endif # endif -# elif defined(RGB_MATRIX_CKLED2001) - ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0); +# elif defined(RGB_MATRIX_SNLED27351) + snled27351_update_led_control_registers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1); + snled27351_update_led_control_registers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2); + snled27351_update_led_control_registers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3); + snled27351_update_led_control_registers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -391,15 +391,15 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color_all = IS31FL_RGB_set_color_all, }; -# elif defined(RGB_MATRIX_CKLED2001) +# elif defined(RGB_MATRIX_SNLED27351) static void flush(void) { - ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0); + snled27351_update_pwm_buffers(DRIVER_ADDR_1, 0); # if defined(DRIVER_ADDR_2) - ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1); + snled27351_update_pwm_buffers(DRIVER_ADDR_2, 1); # if defined(DRIVER_ADDR_3) - ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2); + snled27351_update_pwm_buffers(DRIVER_ADDR_3, 2); # if defined(DRIVER_ADDR_4) - ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3); + snled27351_update_pwm_buffers(DRIVER_ADDR_4, 3); # endif # endif # endif @@ -408,8 +408,8 @@ static void flush(void) { const rgb_matrix_driver_t rgb_matrix_driver = { .init = init, .flush = flush, - .set_color = ckled2001_set_color, - .set_color_all = ckled2001_set_color_all, + .set_color = snled27351_set_color, + .set_color_all = snled27351_set_color_all, }; # endif