summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/led/aw20216s.c3
-rw-r--r--drivers/led/issi/is31fl3741-mono.h2
-rw-r--r--drivers/led/issi/is31fl3746a-mono.c2
-rw-r--r--drivers/led/issi/is31fl3746a-mono.h12
-rw-r--r--drivers/led/issi/is31fl3746a.h12
-rw-r--r--keyboards/input_club/k_type/is31fl3733-dual.c6
-rw-r--r--keyboards/input_club/k_type/is31fl3733-dual.h3
7 files changed, 33 insertions, 7 deletions
diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c
index ab7f3ccb42..49b059186d 100644
--- a/drivers/led/aw20216s.c
+++ b/drivers/led/aw20216s.c
@@ -134,6 +134,7 @@ void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
134 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) { 134 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) {
135 return; 135 return;
136 } 136 }
137
137 g_pwm_buffer[led.driver][led.r] = red; 138 g_pwm_buffer[led.driver][led.r] = red;
138 g_pwm_buffer[led.driver][led.g] = green; 139 g_pwm_buffer[led.driver][led.g] = green;
139 g_pwm_buffer[led.driver][led.b] = blue; 140 g_pwm_buffer[led.driver][led.b] = blue;
@@ -149,8 +150,8 @@ void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
149void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) { 150void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) {
150 if (g_pwm_buffer_update_required[index]) { 151 if (g_pwm_buffer_update_required[index]) {
151 aw20216s_write(cs_pin, AW20216S_PAGE_PWM, 0, g_pwm_buffer[index], AW20216S_PWM_REGISTER_COUNT); 152 aw20216s_write(cs_pin, AW20216S_PAGE_PWM, 0, g_pwm_buffer[index], AW20216S_PWM_REGISTER_COUNT);
153 g_pwm_buffer_update_required[index] = false;
152 } 154 }
153 g_pwm_buffer_update_required[index] = false;
154} 155}
155 156
156void aw20216s_flush(void) { 157void aw20216s_flush(void) {
diff --git a/drivers/led/issi/is31fl3741-mono.h b/drivers/led/issi/is31fl3741-mono.h
index 462543a5bb..ad416b62d5 100644
--- a/drivers/led/issi/is31fl3741-mono.h
+++ b/drivers/led/issi/is31fl3741-mono.h
@@ -120,7 +120,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index);
120void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index); 120void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index);
121void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value); 121void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value);
122 122
123void is31fl3741_set_pwm_buffer(const is31fl3741_led *pled, uint8_t value); 123void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value);
124 124
125void is31fl3741_flush(void); 125void is31fl3741_flush(void);
126 126
diff --git a/drivers/led/issi/is31fl3746a-mono.c b/drivers/led/issi/is31fl3746a-mono.c
index 3dd97833dd..f9bbdb5dba 100644
--- a/drivers/led/issi/is31fl3746a-mono.c
+++ b/drivers/led/issi/is31fl3746a-mono.c
@@ -165,7 +165,7 @@ void is31fl3746a_init(uint8_t addr) {
165 wait_ms(10); 165 wait_ms(10);
166} 166}
167 167
168void is31fl3746a_set_color(int index, uint8_t value) { 168void is31fl3746a_set_value(int index, uint8_t value) {
169 is31fl3746a_led_t led; 169 is31fl3746a_led_t led;
170 170
171 if (index >= 0 && index < IS31FL3746A_LED_COUNT) { 171 if (index >= 0 && index < IS31FL3746A_LED_COUNT) {
diff --git a/drivers/led/issi/is31fl3746a-mono.h b/drivers/led/issi/is31fl3746a-mono.h
index eda644ad19..12bd501cb5 100644
--- a/drivers/led/issi/is31fl3746a-mono.h
+++ b/drivers/led/issi/is31fl3746a-mono.h
@@ -66,6 +66,16 @@
66# define IS31FL3746A_LED_COUNT LED_MATRIX_LED_COUNT 66# define IS31FL3746A_LED_COUNT LED_MATRIX_LED_COUNT
67#endif 67#endif
68 68
69#if defined(IS31FL3746A_I2C_ADDRESS_4)
70# define IS31FL3746A_DRIVER_COUNT 4
71#elif defined(IS31FL3746A_I2C_ADDRESS_3)
72# define IS31FL3746A_DRIVER_COUNT 3
73#elif defined(IS31FL3746A_I2C_ADDRESS_2)
74# define IS31FL3746A_DRIVER_COUNT 2
75#elif defined(IS31FL3746A_I2C_ADDRESS_1)
76# define IS31FL3746A_DRIVER_COUNT 1
77#endif
78
69typedef struct is31fl3746a_led_t { 79typedef struct is31fl3746a_led_t {
70 uint8_t driver : 2; 80 uint8_t driver : 2;
71 uint8_t v; 81 uint8_t v;
@@ -74,7 +84,7 @@ typedef struct is31fl3746a_led_t {
74extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT]; 84extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT];
75 85
76void is31fl3746a_init_drivers(void); 86void is31fl3746a_init_drivers(void);
77void is31fl3746a_init(uint8_t addr, uint8_t sync); 87void is31fl3746a_init(uint8_t addr);
78void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data); 88void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
79void is31fl3746a_select_page(uint8_t addr, uint8_t page); 89void is31fl3746a_select_page(uint8_t addr, uint8_t page);
80void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); 90void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
diff --git a/drivers/led/issi/is31fl3746a.h b/drivers/led/issi/is31fl3746a.h
index f335e98e82..870b6ebc88 100644
--- a/drivers/led/issi/is31fl3746a.h
+++ b/drivers/led/issi/is31fl3746a.h
@@ -66,6 +66,16 @@
66# define IS31FL3746A_LED_COUNT RGB_MATRIX_LED_COUNT 66# define IS31FL3746A_LED_COUNT RGB_MATRIX_LED_COUNT
67#endif 67#endif
68 68
69#if defined(IS31FL3746A_I2C_ADDRESS_4)
70# define IS31FL3746A_DRIVER_COUNT 4
71#elif defined(IS31FL3746A_I2C_ADDRESS_3)
72# define IS31FL3746A_DRIVER_COUNT 3
73#elif defined(IS31FL3746A_I2C_ADDRESS_2)
74# define IS31FL3746A_DRIVER_COUNT 2
75#elif defined(IS31FL3746A_I2C_ADDRESS_1)
76# define IS31FL3746A_DRIVER_COUNT 1
77#endif
78
69typedef struct is31fl3746a_led_t { 79typedef struct is31fl3746a_led_t {
70 uint8_t driver : 2; 80 uint8_t driver : 2;
71 uint8_t r; 81 uint8_t r;
@@ -76,7 +86,7 @@ typedef struct is31fl3746a_led_t {
76extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT]; 86extern const is31fl3746a_led_t PROGMEM g_is31fl3746a_leds[IS31FL3746A_LED_COUNT];
77 87
78void is31fl3746a_init_drivers(void); 88void is31fl3746a_init_drivers(void);
79void is31fl3746a_init(uint8_t addr, uint8_t sync); 89void is31fl3746a_init(uint8_t addr);
80void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data); 90void is31fl3746a_write_register(uint8_t addr, uint8_t reg, uint8_t data);
81void is31fl3746a_select_page(uint8_t addr, uint8_t page); 91void is31fl3746a_select_page(uint8_t addr, uint8_t page);
82void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer); 92void is31fl3746a_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c
index 33734001e0..4b40175994 100644
--- a/keyboards/input_club/k_type/is31fl3733-dual.c
+++ b/keyboards/input_club/k_type/is31fl3733-dual.c
@@ -125,6 +125,7 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe
125 125
126void is31fl3733_init_drivers(void) { 126void is31fl3733_init_drivers(void) {
127 i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN); 127 i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN);
128
128 is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1); 129 is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1);
129# ifdef USE_I2C2 130# ifdef USE_I2C2
130 i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN); 131 i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN);
@@ -180,12 +181,14 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) {
180 181
181void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { 182void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
182 is31fl3733_led_t led; 183 is31fl3733_led_t led;
184
183 if (index >= 0 && index < IS31FL3733_LED_COUNT) { 185 if (index >= 0 && index < IS31FL3733_LED_COUNT) {
184 memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led)); 186 memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
185 187
186 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) { 188 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) {
187 return; 189 return;
188 } 190 }
191
189 g_pwm_buffer[led.driver][led.r] = red; 192 g_pwm_buffer[led.driver][led.r] = red;
190 g_pwm_buffer[led.driver][led.g] = green; 193 g_pwm_buffer[led.driver][led.g] = green;
191 g_pwm_buffer[led.driver][led.b] = blue; 194 g_pwm_buffer[led.driver][led.b] = blue;
@@ -249,8 +252,9 @@ void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) {
249 for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) { 252 for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
250 is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]); 253 is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]);
251 } 254 }
255
256 g_led_control_registers_update_required[index] = false;
252 } 257 }
253 g_led_control_registers_update_required[index] = false;
254} 258}
255 259
256void is31fl3733_flush(void) { 260void is31fl3733_flush(void) {
diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h
index 3368794cba..21dd701525 100644
--- a/keyboards/input_club/k_type/is31fl3733-dual.h
+++ b/keyboards/input_club/k_type/is31fl3733-dual.h
@@ -21,6 +21,7 @@
21#include <stdint.h> 21#include <stdint.h>
22#include <stdbool.h> 22#include <stdbool.h>
23#include "progmem.h" 23#include "progmem.h"
24#include "util.h"
24 25
25#define IS31FL3733_REG_INTERRUPT_MASK 0xF0 26#define IS31FL3733_REG_INTERRUPT_MASK 0xF0
26#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 27#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1
@@ -77,7 +78,7 @@ typedef struct is31fl3733_led_t {
77 uint8_t r; 78 uint8_t r;
78 uint8_t g; 79 uint8_t g;
79 uint8_t b; 80 uint8_t b;
80} __attribute__((packed)) is31fl3733_led_t; 81} PACKED is31fl3733_led_t;
81 82
82extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT]; 83extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT];
83 84