summaryrefslogtreecommitdiff
path: root/keyboards/matrix
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/matrix')
-rw-r--r--keyboards/matrix/abelx/abelx.c7
-rw-r--r--keyboards/matrix/abelx/aw9523b.c14
-rw-r--r--keyboards/matrix/abelx/info.json1
-rw-r--r--keyboards/matrix/abelx/rules.mk1
-rw-r--r--keyboards/matrix/abelx/tca6424.c4
-rw-r--r--keyboards/matrix/m20add/info.json1
-rw-r--r--keyboards/matrix/m20add/rgb_ring.c6
-rw-r--r--keyboards/matrix/m20add/tca6424.c4
-rw-r--r--keyboards/matrix/noah/config.h52
-rw-r--r--keyboards/matrix/noah/info.json45
-rw-r--r--keyboards/matrix/noah/noah.c39
11 files changed, 89 insertions, 85 deletions
diff --git a/keyboards/matrix/abelx/abelx.c b/keyboards/matrix/abelx/abelx.c
index a05934238a..0a3071a402 100644
--- a/keyboards/matrix/abelx/abelx.c
+++ b/keyboards/matrix/abelx/abelx.c
@@ -57,6 +57,7 @@ void housekeeping_task_kb(void) {
#ifdef RGBLIGHT_ENABLE
#include "rgblight.h"
+#include "ws2812.h"
#include "i2c_master.h"
const aw9523b_led g_aw9523b_leds[AW9523B_RGB_NUM] = {
@@ -66,7 +67,7 @@ const aw9523b_led g_aw9523b_leds[AW9523B_RGB_NUM] = {
{AW9523B_P07_PWM, AW9523B_P06_PWM, AW9523B_P05_PWM},
};
-void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
+void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
{
uint8_t num = num_leds < AW9523B_RGB_NUM ? num_leds : AW9523B_RGB_NUM;
@@ -77,6 +78,10 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
}
}
+const rgblight_driver_t rgblight_driver = {
+ .setleds = setleds_custom,
+};
+
#endif
static uint16_t caps_lock_pin = DEF_PIN(TCA6424_PORT2, 3);
diff --git a/keyboards/matrix/abelx/aw9523b.c b/keyboards/matrix/abelx/aw9523b.c
index 8c6e8eaccf..860a71740d 100644
--- a/keyboards/matrix/abelx/aw9523b.c
+++ b/keyboards/matrix/abelx/aw9523b.c
@@ -51,15 +51,15 @@ void aw9523b_init(uint8_t addr)
i2c_init();
// reset chip
uint8_t data = 0;
- i2c_writeReg(addr, AW9523B_RESET, &data, 1, TIMEOUT);
+ i2c_write_register(addr, AW9523B_RESET, &data, 1, TIMEOUT);
wait_ms(1);
// set max led current
data = 0x03; // 37mA/4
- i2c_writeReg(addr, AW9523B_CTL, &data, 1, TIMEOUT);
+ i2c_write_register(addr, AW9523B_CTL, &data, 1, TIMEOUT);
// set port to led mode
data = 0;
- i2c_writeReg(addr, AW9523B_P0_LED, &data, 1, TIMEOUT);
- i2c_writeReg(addr, AW9523B_P1_LED, &data, 1, TIMEOUT);
+ i2c_write_register(addr, AW9523B_P0_LED, &data, 1, TIMEOUT);
+ i2c_write_register(addr, AW9523B_P1_LED, &data, 1, TIMEOUT);
// clear pwm buff
for (uint8_t i = 0; i < 16; i++) {
aw9523b_pwm_buf[i] = 0;
@@ -91,9 +91,9 @@ void aw9523b_update_pwm_buffers(uint8_t addr)
if (aw9523b_pwm_dirty) {
for (uint8_t i = 0; i < AW9523B_RGB_NUM; i++){
aw9523b_led led = g_aw9523b_leds[i];
- i2c_writeReg(addr, led.r, &aw9523b_pwm_buf[PWM2BUF(led.r)], 1, TIMEOUT);
- i2c_writeReg(addr, led.g, &aw9523b_pwm_buf[PWM2BUF(led.g)], 1, TIMEOUT);
- i2c_writeReg(addr, led.b, &aw9523b_pwm_buf[PWM2BUF(led.b)], 1, TIMEOUT);
+ i2c_write_register(addr, led.r, &aw9523b_pwm_buf[PWM2BUF(led.r)], 1, TIMEOUT);
+ i2c_write_register(addr, led.g, &aw9523b_pwm_buf[PWM2BUF(led.g)], 1, TIMEOUT);
+ i2c_write_register(addr, led.b, &aw9523b_pwm_buf[PWM2BUF(led.b)], 1, TIMEOUT);
}
aw9523b_pwm_dirty = false;
}
diff --git a/keyboards/matrix/abelx/info.json b/keyboards/matrix/abelx/info.json
index 35bc059810..b9aa23b756 100644
--- a/keyboards/matrix/abelx/info.json
+++ b/keyboards/matrix/abelx/info.json
@@ -10,6 +10,7 @@
},
"rgblight": {
"led_count": 9,
+ "driver": "custom",
"animations": {
"breathing": true,
"rainbow_mood": true,
diff --git a/keyboards/matrix/abelx/rules.mk b/keyboards/matrix/abelx/rules.mk
index 1c2fc05ffe..83142dd71c 100644
--- a/keyboards/matrix/abelx/rules.mk
+++ b/keyboards/matrix/abelx/rules.mk
@@ -46,3 +46,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c tca6424.c aw9523b.c
I2C_DRIVER_REQUIRED = yes
+WS2812_DRIVER_REQUIRED = yes
diff --git a/keyboards/matrix/abelx/tca6424.c b/keyboards/matrix/abelx/tca6424.c
index 44dc7909d8..c632157256 100644
--- a/keyboards/matrix/abelx/tca6424.c
+++ b/keyboards/matrix/abelx/tca6424.c
@@ -47,13 +47,13 @@ void tca6424_init(void)
static void write_port(uint8_t p, uint8_t d)
{
- i2c_writeReg(TCA6424_ADDR, p, &d, 1, TIMEOUT);
+ i2c_write_register(TCA6424_ADDR, p, &d, 1, TIMEOUT);
}
static uint8_t read_port(uint8_t port)
{
uint8_t data = 0;
- i2c_readReg(TCA6424_ADDR, port, &data, 1, TIMEOUT);
+ i2c_read_register(TCA6424_ADDR, port, &data, 1, TIMEOUT);
return data;
}
diff --git a/keyboards/matrix/m20add/info.json b/keyboards/matrix/m20add/info.json
index 972aab9d0d..6e1a1c493f 100644
--- a/keyboards/matrix/m20add/info.json
+++ b/keyboards/matrix/m20add/info.json
@@ -10,6 +10,7 @@
},
"rgblight": {
"led_count": 20,
+ "driver": "custom",
"animations": {
"breathing": true,
"rainbow_mood": true,
diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c
index f3fbe83d72..f32875cf4f 100644
--- a/keyboards/matrix/m20add/rgb_ring.c
+++ b/keyboards/matrix/m20add/rgb_ring.c
@@ -357,7 +357,7 @@ static void custom_effects(void)
effect_funcs[rgb_ring.effect]();
}
-void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
+void setleds_custom(rgb_led_t *start_led, uint16_t num_leds)
{
if (rgb_ring.state != RING_STATE_QMK) {
return;
@@ -368,6 +368,10 @@ void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
}
}
+const rgblight_driver_t rgblight_driver = {
+ .setleds = setleds_custom,
+};
+
void rgb_ring_init(void)
{
diff --git a/keyboards/matrix/m20add/tca6424.c b/keyboards/matrix/m20add/tca6424.c
index 38cea9f15f..c6ffa4c2fe 100644
--- a/keyboards/matrix/m20add/tca6424.c
+++ b/keyboards/matrix/m20add/tca6424.c
@@ -45,13 +45,13 @@ void tca6424_init(void)
static void write_port(uint8_t p, uint8_t d)
{
- i2c_writeReg(TCA6424_ADDR, p, &d, 1, TIMEOUT);
+ i2c_write_register(TCA6424_ADDR, p, &d, 1, TIMEOUT);
}
static uint8_t read_port(uint8_t port)
{
uint8_t data = 0;
- i2c_readReg(TCA6424_ADDR, port, &data, 1, TIMEOUT);
+ i2c_read_register(TCA6424_ADDR, port, &data, 1, TIMEOUT);
return data;
}
diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h
index a4d4c5a36a..74beabaa7a 100644
--- a/keyboards/matrix/noah/config.h
+++ b/keyboards/matrix/noah/config.h
@@ -21,54 +21,4 @@
// rgb matrix setting
#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-#define DRIVER_1_LED_TOTAL 36
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-# define ENABLE_RGB_MATRIX_ALPHAS_MODS
-# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_BREATHING
-# define ENABLE_RGB_MATRIX_BAND_SAT
-# define ENABLE_RGB_MATRIX_BAND_VAL
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# define ENABLE_RGB_MATRIX_CYCLE_ALL
-# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# define ENABLE_RGB_MATRIX_DUAL_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# define ENABLE_RGB_MATRIX_RAINDROPS
-# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define ENABLE_RGB_MATRIX_HUE_BREATHING
-# define ENABLE_RGB_MATRIX_HUE_PENDULUM
-# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_PIXEL_FLOW
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# define ENABLE_RGB_MATRIX_SPLASH
-# define ENABLE_RGB_MATRIX_MULTISPLASH
-# define ENABLE_RGB_MATRIX_SOLID_SPLASH
-# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#define RGB_MATRIX_LED_COUNT 72
diff --git a/keyboards/matrix/noah/info.json b/keyboards/matrix/noah/info.json
index 507c36120e..bc546cffc9 100644
--- a/keyboards/matrix/noah/info.json
+++ b/keyboards/matrix/noah/info.json
@@ -28,6 +28,51 @@
"pin": "B1"
},
"rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_rain": true,
+ "pixel_flow": true,
+ "pixel_fractal": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ },
"driver": "is31fl3731"
},
"community_layouts": ["65_iso_blocker"],
diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c
index 8246da809c..b5c52f9952 100644
--- a/keyboards/matrix/noah/noah.c
+++ b/keyboards/matrix/noah/noah.c
@@ -17,53 +17,50 @@ extern rgblight_config_t rgblight_config;
// led 0 for caps lock, led 1 for scroll lock, led 3 for num lock
// led 4 for layer 1, led 5 for layer 2, led 6 for layer 3, led 7 for layer 4
-#if RGBLED_NUM < 7
-#error "MUST set the RGBLED_NUM bigger than 7"
+#if RGBLIGHT_LED_COUNT < 7
+#error "MUST set the RGBLIGHT_LED_COUNT bigger than 7"
#endif
-rgb_led_t noah_leds[RGBLED_NUM];
+rgb_led_t noah_leds[RGBLIGHT_LED_COUNT];
static bool noah_led_mode = false;
-void rgblight_set(void) {
+void setleds_custom(rgb_led_t *ledarray, uint16_t num_leds) {
memset(&noah_leds[0], 0, sizeof(noah_leds));
if (!rgblight_config.enable) {
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
+ for (uint8_t i = 0; i < RGBLIGHT_LED_COUNT; i++) {
+ ledarray[i].r = 0;
+ ledarray[i].g = 0;
+ ledarray[i].b = 0;
}
}
if (noah_led_mode) {
led_t led_state = host_keyboard_led_state();
if (led_state.caps_lock) {
- noah_leds[0] = led[0];
+ noah_leds[0] = ledarray[0];
}
if (led_state.scroll_lock) {
- noah_leds[1] = led[1];
+ noah_leds[1] = ledarray[1];
}
if (led_state.num_lock) {
- noah_leds[2] = led[2];
+ noah_leds[2] = ledarray[2];
}
for (int32_t i = 0; i < 4; i++) {
if(layer_state_is(i+1)) {
- noah_leds[i + 3] = led[i + 3];
+ noah_leds[i + 3] = ledarray[i + 3];
}
}
} else {
- memcpy(&noah_leds[0], &led[0], sizeof(noah_leds));
+ memcpy(&noah_leds[0], &ledarray[0], sizeof(noah_leds));
}
- ws2812_setleds(noah_leds, RGBLED_NUM);
+ ws2812_setleds(noah_leds, RGBLIGHT_LED_COUNT);
}
-#endif
-void matrix_scan_kb(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_task();
+const rgblight_driver_t rgblight_driver = {
+ .setleds = setleds_custom,
+};
#endif
- matrix_scan_user();
-}
#ifdef RGB_MATRIX_ENABLE
-const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location