summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2023-12-06 14:52:18 +1100
committerGitHub <noreply@github.com>2023-12-05 19:52:18 -0800
commitb6fbed3dc345c722b6d667bc3421d3c82e09896b (patch)
treecfb27d79da0e333e7834a5190d58af9c203a54c6
parent8b022cefc54a1e55fd7f6688ac14b7d6f407f178 (diff)
LED drivers: change "TWI" to "I2C" (#22617)
-rw-r--r--drivers/led/issi/is31fl3218-simple.c19
-rw-r--r--drivers/led/issi/is31fl3218.c19
-rw-r--r--drivers/led/issi/is31fl3731-simple.c21
-rw-r--r--drivers/led/issi/is31fl3731.c21
-rw-r--r--drivers/led/issi/is31fl3733-simple.c21
-rw-r--r--drivers/led/issi/is31fl3733.c21
-rw-r--r--drivers/led/issi/is31fl3736-simple.c21
-rw-r--r--drivers/led/issi/is31fl3736.c21
-rw-r--r--drivers/led/issi/is31fl3737-simple.c21
-rw-r--r--drivers/led/issi/is31fl3737.c21
-rw-r--r--drivers/led/issi/is31fl3741-simple.c27
-rw-r--r--drivers/led/issi/is31fl3741.c27
-rw-r--r--drivers/led/issi/is31flcommon.c19
-rw-r--r--drivers/led/snled27351-simple.c21
-rw-r--r--drivers/led/snled27351.c19
-rw-r--r--keyboards/input_club/k_type/is31fl3733-dual.c21
16 files changed, 162 insertions, 178 deletions
diff --git a/drivers/led/issi/is31fl3218-simple.c b/drivers/led/issi/is31fl3218-simple.c
index ce28c51d18..e58b7d8bc0 100644
--- a/drivers/led/issi/is31fl3218-simple.c
+++ b/drivers/led/issi/is31fl3218-simple.c
@@ -28,8 +28,7 @@
28# define IS31FL3218_I2C_PERSISTENCE 0 28# define IS31FL3218_I2C_PERSISTENCE 0
29#endif 29#endif
30 30
31// Reusable buffer for transfers 31uint8_t i2c_transfer_buffer[20];
32uint8_t g_twi_transfer_buffer[20];
33 32
34// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining. 33// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining.
35uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT]; 34uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT];
@@ -39,27 +38,27 @@ uint8_t g_led_control_registers[IS31FL3218_LED_CONTROL_REGISTER_COUNT] = {0};
39bool g_led_control_registers_update_required = false; 38bool g_led_control_registers_update_required = false;
40 39
41void is31fl3218_write_register(uint8_t reg, uint8_t data) { 40void is31fl3218_write_register(uint8_t reg, uint8_t data) {
42 g_twi_transfer_buffer[0] = reg; 41 i2c_transfer_buffer[0] = reg;
43 g_twi_transfer_buffer[1] = data; 42 i2c_transfer_buffer[1] = data;
44#if IS31FL3218_I2C_PERSISTENCE > 0 43#if IS31FL3218_I2C_PERSISTENCE > 0
45 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { 44 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
46 if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break; 45 if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break;
47 } 46 }
48#else 47#else
49 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT); 48 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT);
50#endif 49#endif
51} 50}
52 51
53void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { 52void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) {
54 g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM; 53 i2c_transfer_buffer[0] = IS31FL3218_REG_PWM;
55 memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18); 54 memcpy(i2c_transfer_buffer + 1, pwm_buffer, 18);
56 55
57#if IS31FL3218_I2C_PERSISTENCE > 0 56#if IS31FL3218_I2C_PERSISTENCE > 0
58 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { 57 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
59 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); 58 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
60 } 59 }
61#else 60#else
62 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); 61 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
63#endif 62#endif
64} 63}
65 64
diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c
index 39db09d518..9bfdc9c44d 100644
--- a/drivers/led/issi/is31fl3218.c
+++ b/drivers/led/issi/is31fl3218.c
@@ -28,8 +28,7 @@
28# define IS31FL3218_I2C_PERSISTENCE 0 28# define IS31FL3218_I2C_PERSISTENCE 0
29#endif 29#endif
30 30
31// Reusable buffer for transfers 31uint8_t i2c_transfer_buffer[20];
32uint8_t g_twi_transfer_buffer[20];
33 32
34// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining. 33// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining.
35uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT]; 34uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT];
@@ -39,27 +38,27 @@ uint8_t g_led_control_registers[IS31FL3218_LED_CONTROL_REGISTER_COUNT] = {0};
39bool g_led_control_registers_update_required = false; 38bool g_led_control_registers_update_required = false;
40 39
41void is31fl3218_write_register(uint8_t reg, uint8_t data) { 40void is31fl3218_write_register(uint8_t reg, uint8_t data) {
42 g_twi_transfer_buffer[0] = reg; 41 i2c_transfer_buffer[0] = reg;
43 g_twi_transfer_buffer[1] = data; 42 i2c_transfer_buffer[1] = data;
44#if IS31FL3218_I2C_PERSISTENCE > 0 43#if IS31FL3218_I2C_PERSISTENCE > 0
45 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { 44 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
46 if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break; 45 if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break;
47 } 46 }
48#else 47#else
49 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT); 48 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT);
50#endif 49#endif
51} 50}
52 51
53void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) { 52void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) {
54 g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM; 53 i2c_transfer_buffer[0] = IS31FL3218_REG_PWM;
55 memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18); 54 memcpy(i2c_transfer_buffer + 1, pwm_buffer, 18);
56 55
57#if IS31FL3218_I2C_PERSISTENCE > 0 56#if IS31FL3218_I2C_PERSISTENCE > 0
58 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) { 57 for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
59 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); 58 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
60 } 59 }
61#else 60#else
62 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT); 61 i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, i2c_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
63#endif 62#endif
64} 63}
65 64
diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c
index 563d377633..14743717d4 100644
--- a/drivers/led/issi/is31fl3731-simple.c
+++ b/drivers/led/issi/is31fl3731-simple.c
@@ -33,8 +33,7 @@
33# define IS31FL3731_I2C_PERSISTENCE 0 33# define IS31FL3731_I2C_PERSISTENCE 0
34#endif 34#endif
35 35
36// Transfer buffer for TWITransmitData() 36uint8_t i2c_transfer_buffer[20];
37uint8_t g_twi_transfer_buffer[20];
38 37
39// These buffers match the IS31FL3731 PWM registers 0x24-0xB3. 38// These buffers match the IS31FL3731 PWM registers 0x24-0xB3.
40// Storing them like this is optimal for I2C transfers to the registers. 39// Storing them like this is optimal for I2C transfers to the registers.
@@ -48,17 +47,17 @@ uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][IS31FL3731_LED_CONTROL_
48bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; 47bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false};
49 48
50void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 49void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
51 g_twi_transfer_buffer[0] = reg; 50 i2c_transfer_buffer[0] = reg;
52 g_twi_transfer_buffer[1] = data; 51 i2c_transfer_buffer[1] = data;
53 52
54#if IS31FL3731_I2C_PERSISTENCE > 0 53#if IS31FL3731_I2C_PERSISTENCE > 0
55 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { 54 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
56 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) { 55 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) {
57 break; 56 break;
58 } 57 }
59 } 58 }
60#else 59#else
61 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT); 60 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT);
62#endif 61#endif
63} 62}
64 63
@@ -70,23 +69,23 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
70 // assumes page 0 is already selected 69 // assumes page 0 is already selected
71 70
72 // transmit PWM registers in 9 transfers of 16 bytes 71 // transmit PWM registers in 9 transfers of 16 bytes
73 // g_twi_transfer_buffer[] is 20 bytes 72 // i2c_transfer_buffer[] is 20 bytes
74 73
75 // iterate over the pwm_buffer contents at 16 byte intervals 74 // iterate over the pwm_buffer contents at 16 byte intervals
76 for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) { 75 for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) {
77 // set the first register, e.g. 0x24, 0x34, 0x44, etc. 76 // set the first register, e.g. 0x24, 0x34, 0x44, etc.
78 g_twi_transfer_buffer[0] = 0x24 + i; 77 i2c_transfer_buffer[0] = 0x24 + i;
79 // copy the data from i to i+15 78 // copy the data from i to i+15
80 // device will auto-increment register for data after the first byte 79 // device will auto-increment register for data after the first byte
81 // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer 80 // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer
82 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 81 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
83 82
84#if IS31FL3731_I2C_PERSISTENCE > 0 83#if IS31FL3731_I2C_PERSISTENCE > 0
85 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { 84 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
86 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break; 85 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break;
87 } 86 }
88#else 87#else
89 i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT); 88 i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT);
90#endif 89#endif
91 } 90 }
92} 91}
diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c
index 19176458b7..9a7d0b5eca 100644
--- a/drivers/led/issi/is31fl3731.c
+++ b/drivers/led/issi/is31fl3731.c
@@ -32,8 +32,7 @@
32# define IS31FL3731_I2C_PERSISTENCE 0 32# define IS31FL3731_I2C_PERSISTENCE 0
33#endif 33#endif
34 34
35// Transfer buffer for TWITransmitData() 35uint8_t i2c_transfer_buffer[20];
36uint8_t g_twi_transfer_buffer[20];
37 36
38// These buffers match the IS31FL3731 PWM registers 0x24-0xB3. 37// These buffers match the IS31FL3731 PWM registers 0x24-0xB3.
39// Storing them like this is optimal for I2C transfers to the registers. 38// Storing them like this is optimal for I2C transfers to the registers.
@@ -47,15 +46,15 @@ uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][IS31FL3731_LED_CONTROL_
47bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false}; 46bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false};
48 47
49void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 48void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
50 g_twi_transfer_buffer[0] = reg; 49 i2c_transfer_buffer[0] = reg;
51 g_twi_transfer_buffer[1] = data; 50 i2c_transfer_buffer[1] = data;
52 51
53#if IS31FL3731_I2C_PERSISTENCE > 0 52#if IS31FL3731_I2C_PERSISTENCE > 0
54 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { 53 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
55 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) break; 54 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) break;
56 } 55 }
57#else 56#else
58 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT); 57 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT);
59#endif 58#endif
60} 59}
61 60
@@ -67,23 +66,23 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
67 // assumes page 0 is already selected 66 // assumes page 0 is already selected
68 67
69 // transmit PWM registers in 9 transfers of 16 bytes 68 // transmit PWM registers in 9 transfers of 16 bytes
70 // g_twi_transfer_buffer[] is 20 bytes 69 // i2c_transfer_buffer[] is 20 bytes
71 70
72 // iterate over the pwm_buffer contents at 16 byte intervals 71 // iterate over the pwm_buffer contents at 16 byte intervals
73 for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) { 72 for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) {
74 // set the first register, e.g. 0x24, 0x34, 0x44, etc. 73 // set the first register, e.g. 0x24, 0x34, 0x44, etc.
75 g_twi_transfer_buffer[0] = 0x24 + i; 74 i2c_transfer_buffer[0] = 0x24 + i;
76 // copy the data from i to i+15 75 // copy the data from i to i+15
77 // device will auto-increment register for data after the first byte 76 // device will auto-increment register for data after the first byte
78 // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer 77 // thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer
79 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 78 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
80 79
81#if IS31FL3731_I2C_PERSISTENCE > 0 80#if IS31FL3731_I2C_PERSISTENCE > 0
82 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) { 81 for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
83 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break; 82 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break;
84 } 83 }
85#else 84#else
86 i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT); 85 i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT);
87#endif 86#endif
88 } 87 }
89} 88}
diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c
index 8bdea3827f..805905ebc2 100644
--- a/drivers/led/issi/is31fl3733-simple.c
+++ b/drivers/led/issi/is31fl3733-simple.c
@@ -63,8 +63,7 @@
63# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE 63# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE
64#endif 64#endif
65 65
66// Transfer buffer for TWITransmitData() 66uint8_t i2c_transfer_buffer[20];
67uint8_t g_twi_transfer_buffer[20];
68 67
69// These buffers match the IS31FL3733 PWM registers. 68// These buffers match the IS31FL3733 PWM registers.
70// The control buffers match the page 0 LED On/Off registers. 69// The control buffers match the page 0 LED On/Off registers.
@@ -80,17 +79,17 @@ bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT]
80 79
81bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 80bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
82 // If the transaction fails function returns false. 81 // If the transaction fails function returns false.
83 g_twi_transfer_buffer[0] = reg; 82 i2c_transfer_buffer[0] = reg;
84 g_twi_transfer_buffer[1] = data; 83 i2c_transfer_buffer[1] = data;
85 84
86#if IS31FL3733_I2C_PERSISTENCE > 0 85#if IS31FL3733_I2C_PERSISTENCE > 0
87 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { 86 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
88 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { 87 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
89 return false; 88 return false;
90 } 89 }
91 } 90 }
92#else 91#else
93 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { 92 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
94 return false; 93 return false;
95 } 94 }
96#endif 95#endif
@@ -106,24 +105,24 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
106 // Assumes page 1 is already selected. 105 // Assumes page 1 is already selected.
107 // If any of the transactions fails function returns false. 106 // If any of the transactions fails function returns false.
108 // Transmit PWM registers in 12 transfers of 16 bytes. 107 // Transmit PWM registers in 12 transfers of 16 bytes.
109 // g_twi_transfer_buffer[] is 20 bytes 108 // i2c_transfer_buffer[] is 20 bytes
110 109
111 // Iterate over the pwm_buffer contents at 16 byte intervals. 110 // Iterate over the pwm_buffer contents at 16 byte intervals.
112 for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) { 111 for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
113 g_twi_transfer_buffer[0] = i; 112 i2c_transfer_buffer[0] = i;
114 // Copy the data from i to i+15. 113 // Copy the data from i to i+15.
115 // Device will auto-increment register for data after the first byte 114 // Device will auto-increment register for data after the first byte
116 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. 115 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
117 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 116 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
118 117
119#if IS31FL3733_I2C_PERSISTENCE > 0 118#if IS31FL3733_I2C_PERSISTENCE > 0
120 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { 119 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
121 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { 120 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
122 return false; 121 return false;
123 } 122 }
124 } 123 }
125#else 124#else
126 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { 125 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
127 return false; 126 return false;
128 } 127 }
129#endif 128#endif
diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c
index 0f263d949d..f7162a0ce5 100644
--- a/drivers/led/issi/is31fl3733.c
+++ b/drivers/led/issi/is31fl3733.c
@@ -62,8 +62,7 @@
62# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE 62# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE
63#endif 63#endif
64 64
65// Transfer buffer for TWITransmitData() 65uint8_t i2c_transfer_buffer[20];
66uint8_t g_twi_transfer_buffer[20];
67 66
68// These buffers match the IS31FL3733 PWM registers. 67// These buffers match the IS31FL3733 PWM registers.
69// The control buffers match the page 0 LED On/Off registers. 68// The control buffers match the page 0 LED On/Off registers.
@@ -79,17 +78,17 @@ bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT]
79 78
80bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 79bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
81 // If the transaction fails function returns false. 80 // If the transaction fails function returns false.
82 g_twi_transfer_buffer[0] = reg; 81 i2c_transfer_buffer[0] = reg;
83 g_twi_transfer_buffer[1] = data; 82 i2c_transfer_buffer[1] = data;
84 83
85#if IS31FL3733_I2C_PERSISTENCE > 0 84#if IS31FL3733_I2C_PERSISTENCE > 0
86 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { 85 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
87 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { 86 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
88 return false; 87 return false;
89 } 88 }
90 } 89 }
91#else 90#else
92 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { 91 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
93 return false; 92 return false;
94 } 93 }
95#endif 94#endif
@@ -105,24 +104,24 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
105 // Assumes page 1 is already selected. 104 // Assumes page 1 is already selected.
106 // If any of the transactions fails function returns false. 105 // If any of the transactions fails function returns false.
107 // Transmit PWM registers in 12 transfers of 16 bytes. 106 // Transmit PWM registers in 12 transfers of 16 bytes.
108 // g_twi_transfer_buffer[] is 20 bytes 107 // i2c_transfer_buffer[] is 20 bytes
109 108
110 // Iterate over the pwm_buffer contents at 16 byte intervals. 109 // Iterate over the pwm_buffer contents at 16 byte intervals.
111 for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) { 110 for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
112 g_twi_transfer_buffer[0] = i; 111 i2c_transfer_buffer[0] = i;
113 // Copy the data from i to i+15. 112 // Copy the data from i to i+15.
114 // Device will auto-increment register for data after the first byte 113 // Device will auto-increment register for data after the first byte
115 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. 114 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
116 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 115 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
117 116
118#if IS31FL3733_I2C_PERSISTENCE > 0 117#if IS31FL3733_I2C_PERSISTENCE > 0
119 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { 118 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
120 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { 119 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
121 return false; 120 return false;
122 } 121 }
123 } 122 }
124#else 123#else
125 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { 124 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
126 return false; 125 return false;
127 } 126 }
128#endif 127#endif
diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c
index 20f8dfd92c..ac5e0fb453 100644
--- a/drivers/led/issi/is31fl3736-simple.c
+++ b/drivers/led/issi/is31fl3736-simple.c
@@ -47,8 +47,7 @@
47# define IS31FL3736_GLOBAL_CURRENT 0xFF 47# define IS31FL3736_GLOBAL_CURRENT 0xFF
48#endif 48#endif
49 49
50// Transfer buffer for TWITransmitData() 50uint8_t i2c_transfer_buffer[20];
51uint8_t g_twi_transfer_buffer[20];
52 51
53// These buffers match the IS31FL3736 PWM registers. 52// These buffers match the IS31FL3736 PWM registers.
54// The control buffers match the page 0 LED On/Off registers. 53// The control buffers match the page 0 LED On/Off registers.
@@ -63,15 +62,15 @@ uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][IS31FL3736_LED_CONTROL_
63bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; 62bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false};
64 63
65void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 64void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
66 g_twi_transfer_buffer[0] = reg; 65 i2c_transfer_buffer[0] = reg;
67 g_twi_transfer_buffer[1] = data; 66 i2c_transfer_buffer[1] = data;
68 67
69#if IS31FL3736_I2C_PERSISTENCE > 0 68#if IS31FL3736_I2C_PERSISTENCE > 0
70 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { 69 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
71 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break; 70 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break;
72 } 71 }
73#else 72#else
74 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT); 73 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT);
75#endif 74#endif
76} 75}
77 76
@@ -84,22 +83,22 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
84 // assumes page 1 is already selected 83 // assumes page 1 is already selected
85 84
86 // transmit PWM registers in 12 transfers of 16 bytes 85 // transmit PWM registers in 12 transfers of 16 bytes
87 // g_twi_transfer_buffer[] is 20 bytes 86 // i2c_transfer_buffer[] is 20 bytes
88 87
89 // iterate over the pwm_buffer contents at 16 byte intervals 88 // iterate over the pwm_buffer contents at 16 byte intervals
90 for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) { 89 for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) {
91 g_twi_transfer_buffer[0] = i; 90 i2c_transfer_buffer[0] = i;
92 // copy the data from i to i+15 91 // copy the data from i to i+15
93 // device will auto-increment register for data after the first byte 92 // device will auto-increment register for data after the first byte
94 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer 93 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
95 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 94 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
96 95
97#if IS31FL3736_I2C_PERSISTENCE > 0 96#if IS31FL3736_I2C_PERSISTENCE > 0
98 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { 97 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
99 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break; 98 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break;
100 } 99 }
101#else 100#else
102 i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT); 101 i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT);
103#endif 102#endif
104 } 103 }
105} 104}
diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c
index 530d92cf31..384b815850 100644
--- a/drivers/led/issi/is31fl3736.c
+++ b/drivers/led/issi/is31fl3736.c
@@ -47,8 +47,7 @@
47# define IS31FL3736_GLOBAL_CURRENT 0xFF 47# define IS31FL3736_GLOBAL_CURRENT 0xFF
48#endif 48#endif
49 49
50// Transfer buffer for TWITransmitData() 50uint8_t i2c_transfer_buffer[20];
51uint8_t g_twi_transfer_buffer[20];
52 51
53// These buffers match the IS31FL3736 PWM registers. 52// These buffers match the IS31FL3736 PWM registers.
54// The control buffers match the page 0 LED On/Off registers. 53// The control buffers match the page 0 LED On/Off registers.
@@ -63,15 +62,15 @@ uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][IS31FL3736_LED_CONTROL_
63bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false}; 62bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false};
64 63
65void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 64void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
66 g_twi_transfer_buffer[0] = reg; 65 i2c_transfer_buffer[0] = reg;
67 g_twi_transfer_buffer[1] = data; 66 i2c_transfer_buffer[1] = data;
68 67
69#if IS31FL3736_I2C_PERSISTENCE > 0 68#if IS31FL3736_I2C_PERSISTENCE > 0
70 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { 69 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
71 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break; 70 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break;
72 } 71 }
73#else 72#else
74 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT); 73 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT);
75#endif 74#endif
76} 75}
77 76
@@ -84,22 +83,22 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
84 // assumes page 1 is already selected 83 // assumes page 1 is already selected
85 84
86 // transmit PWM registers in 12 transfers of 16 bytes 85 // transmit PWM registers in 12 transfers of 16 bytes
87 // g_twi_transfer_buffer[] is 20 bytes 86 // i2c_transfer_buffer[] is 20 bytes
88 87
89 // iterate over the pwm_buffer contents at 16 byte intervals 88 // iterate over the pwm_buffer contents at 16 byte intervals
90 for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) { 89 for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) {
91 g_twi_transfer_buffer[0] = i; 90 i2c_transfer_buffer[0] = i;
92 // copy the data from i to i+15 91 // copy the data from i to i+15
93 // device will auto-increment register for data after the first byte 92 // device will auto-increment register for data after the first byte
94 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer 93 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
95 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 94 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
96 95
97#if IS31FL3736_I2C_PERSISTENCE > 0 96#if IS31FL3736_I2C_PERSISTENCE > 0
98 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) { 97 for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
99 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break; 98 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break;
100 } 99 }
101#else 100#else
102 i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT); 101 i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT);
103#endif 102#endif
104 } 103 }
105} 104}
diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c
index 930a6c9a90..967a102b48 100644
--- a/drivers/led/issi/is31fl3737-simple.c
+++ b/drivers/led/issi/is31fl3737-simple.c
@@ -49,8 +49,7 @@
49# define IS31FL3737_GLOBAL_CURRENT 0xFF 49# define IS31FL3737_GLOBAL_CURRENT 0xFF
50#endif 50#endif
51 51
52// Transfer buffer for TWITransmitData() 52uint8_t i2c_transfer_buffer[20];
53uint8_t g_twi_transfer_buffer[20];
54 53
55// These buffers match the IS31FL3737 PWM registers. 54// These buffers match the IS31FL3737 PWM registers.
56// The control buffers match the page 0 LED On/Off registers. 55// The control buffers match the page 0 LED On/Off registers.
@@ -66,15 +65,15 @@ uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][IS31FL3737_LED_CONTROL_
66bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; 65bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false};
67 66
68void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 67void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
69 g_twi_transfer_buffer[0] = reg; 68 i2c_transfer_buffer[0] = reg;
70 g_twi_transfer_buffer[1] = data; 69 i2c_transfer_buffer[1] = data;
71 70
72#if IS31FL3737_I2C_PERSISTENCE > 0 71#if IS31FL3737_I2C_PERSISTENCE > 0
73 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { 72 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
74 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break; 73 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break;
75 } 74 }
76#else 75#else
77 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT); 76 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT);
78#endif 77#endif
79} 78}
80 79
@@ -87,22 +86,22 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
87 // assumes page 1 is already selected 86 // assumes page 1 is already selected
88 87
89 // transmit PWM registers in 12 transfers of 16 bytes 88 // transmit PWM registers in 12 transfers of 16 bytes
90 // g_twi_transfer_buffer[] is 20 bytes 89 // i2c_transfer_buffer[] is 20 bytes
91 90
92 // iterate over the pwm_buffer contents at 16 byte intervals 91 // iterate over the pwm_buffer contents at 16 byte intervals
93 for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) { 92 for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) {
94 g_twi_transfer_buffer[0] = i; 93 i2c_transfer_buffer[0] = i;
95 // copy the data from i to i+15 94 // copy the data from i to i+15
96 // device will auto-increment register for data after the first byte 95 // device will auto-increment register for data after the first byte
97 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer 96 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
98 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 97 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
99 98
100#if IS31FL3737_I2C_PERSISTENCE > 0 99#if IS31FL3737_I2C_PERSISTENCE > 0
101 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { 100 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
102 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break; 101 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break;
103 } 102 }
104#else 103#else
105 i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT); 104 i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT);
106#endif 105#endif
107 } 106 }
108} 107}
diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c
index fd727e60d3..76d17c2b84 100644
--- a/drivers/led/issi/is31fl3737.c
+++ b/drivers/led/issi/is31fl3737.c
@@ -49,8 +49,7 @@
49# define IS31FL3737_GLOBAL_CURRENT 0xFF 49# define IS31FL3737_GLOBAL_CURRENT 0xFF
50#endif 50#endif
51 51
52// Transfer buffer for TWITransmitData() 52uint8_t i2c_transfer_buffer[20];
53uint8_t g_twi_transfer_buffer[20];
54 53
55// These buffers match the IS31FL3737 PWM registers. 54// These buffers match the IS31FL3737 PWM registers.
56// The control buffers match the page 0 LED On/Off registers. 55// The control buffers match the page 0 LED On/Off registers.
@@ -66,15 +65,15 @@ uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][IS31FL3737_LED_CONTROL_
66bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false}; 65bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false};
67 66
68void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 67void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
69 g_twi_transfer_buffer[0] = reg; 68 i2c_transfer_buffer[0] = reg;
70 g_twi_transfer_buffer[1] = data; 69 i2c_transfer_buffer[1] = data;
71 70
72#if IS31FL3737_I2C_PERSISTENCE > 0 71#if IS31FL3737_I2C_PERSISTENCE > 0
73 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { 72 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
74 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break; 73 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break;
75 } 74 }
76#else 75#else
77 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT); 76 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT);
78#endif 77#endif
79} 78}
80 79
@@ -87,22 +86,22 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
87 // assumes page 1 is already selected 86 // assumes page 1 is already selected
88 87
89 // transmit PWM registers in 12 transfers of 16 bytes 88 // transmit PWM registers in 12 transfers of 16 bytes
90 // g_twi_transfer_buffer[] is 20 bytes 89 // i2c_transfer_buffer[] is 20 bytes
91 90
92 // iterate over the pwm_buffer contents at 16 byte intervals 91 // iterate over the pwm_buffer contents at 16 byte intervals
93 for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) { 92 for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) {
94 g_twi_transfer_buffer[0] = i; 93 i2c_transfer_buffer[0] = i;
95 // copy the data from i to i+15 94 // copy the data from i to i+15
96 // device will auto-increment register for data after the first byte 95 // device will auto-increment register for data after the first byte
97 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer 96 // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
98 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16); 97 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 16);
99 98
100#if IS31FL3737_I2C_PERSISTENCE > 0 99#if IS31FL3737_I2C_PERSISTENCE > 0
101 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) { 100 for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
102 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break; 101 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break;
103 } 102 }
104#else 103#else
105 i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT); 104 i2c_transmit(addr << 1, i2c_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT);
106#endif 105#endif
107 } 106 }
108} 107}
diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c
index 6bce71d5f7..db245af4da 100644
--- a/drivers/led/issi/is31fl3741-simple.c
+++ b/drivers/led/issi/is31fl3741-simple.c
@@ -52,8 +52,7 @@
52# define IS31FL3741_GLOBAL_CURRENT 0xFF 52# define IS31FL3741_GLOBAL_CURRENT 0xFF
53#endif 53#endif
54 54
55// Transfer buffer for TWITransmitData() 55uint8_t i2c_transfer_buffer[20] = {0xFF};
56uint8_t g_twi_transfer_buffer[20] = {0xFF};
57 56
58// These buffers match the IS31FL3741 and IS31FL3741A PWM registers. 57// These buffers match the IS31FL3741 and IS31FL3741A PWM registers.
59// The scaling buffers match the page 2 and 3 LED On/Off registers. 58// The scaling buffers match the page 2 and 3 LED On/Off registers.
@@ -68,15 +67,15 @@ bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false};
68uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT]; 67uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT];
69 68
70void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 69void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
71 g_twi_transfer_buffer[0] = reg; 70 i2c_transfer_buffer[0] = reg;
72 g_twi_transfer_buffer[1] = data; 71 i2c_transfer_buffer[1] = data;
73 72
74#if IS31FL3741_I2C_PERSISTENCE > 0 73#if IS31FL3741_I2C_PERSISTENCE > 0
75 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { 74 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
76 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break; 75 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break;
77 } 76 }
78#else 77#else
79 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT); 78 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT);
80#endif 79#endif
81} 80}
82 81
@@ -93,34 +92,34 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
93 is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_1); 92 is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_1);
94 } 93 }
95 94
96 g_twi_transfer_buffer[0] = i % 180; 95 i2c_transfer_buffer[0] = i % 180;
97 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 18); 96 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 18);
98 97
99#if IS31FL3741_I2C_PERSISTENCE > 0 98#if IS31FL3741_I2C_PERSISTENCE > 0
100 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { 99 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
101 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { 100 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
102 return false; 101 return false;
103 } 102 }
104 } 103 }
105#else 104#else
106 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { 105 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
107 return false; 106 return false;
108 } 107 }
109#endif 108#endif
110 } 109 }
111 110
112 // transfer the left cause the total number is 351 111 // transfer the left cause the total number is 351
113 g_twi_transfer_buffer[0] = 162; 112 i2c_transfer_buffer[0] = 162;
114 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + 342, 9); 113 memcpy(i2c_transfer_buffer + 1, pwm_buffer + 342, 9);
115 114
116#if IS31FL3741_I2C_PERSISTENCE > 0 115#if IS31FL3741_I2C_PERSISTENCE > 0
117 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { 116 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
118 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { 117 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
119 return false; 118 return false;
120 } 119 }
121 } 120 }
122#else 121#else
123 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { 122 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
124 return false; 123 return false;
125 } 124 }
126#endif 125#endif
diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c
index 3ee75572fa..0575f31254 100644
--- a/drivers/led/issi/is31fl3741.c
+++ b/drivers/led/issi/is31fl3741.c
@@ -52,8 +52,7 @@
52# define IS31FL3741_GLOBAL_CURRENT 0xFF 52# define IS31FL3741_GLOBAL_CURRENT 0xFF
53#endif 53#endif
54 54
55// Transfer buffer for TWITransmitData() 55uint8_t i2c_transfer_buffer[20] = {0xFF};
56uint8_t g_twi_transfer_buffer[20] = {0xFF};
57 56
58// These buffers match the IS31FL3741 and IS31FL3741A PWM registers. 57// These buffers match the IS31FL3741 and IS31FL3741A PWM registers.
59// The scaling buffers match the page 2 and 3 LED On/Off registers. 58// The scaling buffers match the page 2 and 3 LED On/Off registers.
@@ -68,15 +67,15 @@ bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false};
68uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT]; 67uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT];
69 68
70void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 69void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
71 g_twi_transfer_buffer[0] = reg; 70 i2c_transfer_buffer[0] = reg;
72 g_twi_transfer_buffer[1] = data; 71 i2c_transfer_buffer[1] = data;
73 72
74#if IS31FL3741_I2C_PERSISTENCE > 0 73#if IS31FL3741_I2C_PERSISTENCE > 0
75 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { 74 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
76 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break; 75 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break;
77 } 76 }
78#else 77#else
79 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT); 78 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT);
80#endif 79#endif
81} 80}
82 81
@@ -93,34 +92,34 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
93 is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_1); 92 is31fl3741_select_page(addr, IS31FL3741_COMMAND_PWM_1);
94 } 93 }
95 94
96 g_twi_transfer_buffer[0] = i % 180; 95 i2c_transfer_buffer[0] = i % 180;
97 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 18); 96 memcpy(i2c_transfer_buffer + 1, pwm_buffer + i, 18);
98 97
99#if IS31FL3741_I2C_PERSISTENCE > 0 98#if IS31FL3741_I2C_PERSISTENCE > 0
100 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { 99 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
101 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { 100 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
102 return false; 101 return false;
103 } 102 }
104 } 103 }
105#else 104#else
106 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) { 105 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
107 return false; 106 return false;
108 } 107 }
109#endif 108#endif
110 } 109 }
111 110
112 // transfer the left cause the total number is 351 111 // transfer the left cause the total number is 351
113 g_twi_transfer_buffer[0] = 162; 112 i2c_transfer_buffer[0] = 162;
114 memcpy(g_twi_transfer_buffer + 1, pwm_buffer + 342, 9); 113 memcpy(i2c_transfer_buffer + 1, pwm_buffer + 342, 9);
115 114
116#if IS31FL3741_I2C_PERSISTENCE > 0 115#if IS31FL3741_I2C_PERSISTENCE > 0
117 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) { 116 for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
118 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { 117 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
119 return false; 118 return false;
120 } 119 }
121 } 120 }
122#else 121#else
123 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) { 122 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
124 return false; 123 return false;
125 } 124 }
126#endif 125#endif
diff --git a/drivers/led/issi/is31flcommon.c b/drivers/led/issi/is31flcommon.c
index d6b9bce93d..048db286b6 100644
--- a/drivers/led/issi/is31flcommon.c
+++ b/drivers/led/issi/is31flcommon.c
@@ -31,8 +31,7 @@
31# define ISSI_PERSISTENCE 0 31# define ISSI_PERSISTENCE 0
32#endif 32#endif
33 33
34// Transfer buffer for TWITransmitData() 34uint8_t i2c_transfer_buffer[20];
35uint8_t g_twi_transfer_buffer[20];
36 35
37// These buffers match the PWM & scaling registers. 36// These buffers match the PWM & scaling registers.
38// Storing them like this is optimal for I2C transfers to the registers. 37// Storing them like this is optimal for I2C transfers to the registers.
@@ -45,15 +44,15 @@ bool g_scaling_buffer_update_required[DRIVER_COUNT] = {false};
45// For writing of single register entry 44// For writing of single register entry
46void IS31FL_write_single_register(uint8_t addr, uint8_t reg, uint8_t data) { 45void IS31FL_write_single_register(uint8_t addr, uint8_t reg, uint8_t data) {
47 // Set register address and register data ready to write 46 // Set register address and register data ready to write
48 g_twi_transfer_buffer[0] = reg; 47 i2c_transfer_buffer[0] = reg;
49 g_twi_transfer_buffer[1] = data; 48 i2c_transfer_buffer[1] = data;
50 49
51#if ISSI_PERSISTENCE > 0 50#if ISSI_PERSISTENCE > 0
52 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { 51 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
53 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break; 52 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break;
54 } 53 }
55#else 54#else
56 i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT); 55 i2c_transmit(addr << 1, i2c_transfer_buffer, 2, ISSI_TIMEOUT);
57#endif 56#endif
58} 57}
59 58
@@ -64,18 +63,18 @@ bool IS31FL_write_multi_registers(uint8_t addr, uint8_t *source_buffer, uint8_t
64 // Split the buffer into chunks to transfer 63 // Split the buffer into chunks to transfer
65 for (int i = 0; i < buffer_size; i += transfer_size) { 64 for (int i = 0; i < buffer_size; i += transfer_size) {
66 // Set the first entry of transfer buffer to the first register we want to write 65 // Set the first entry of transfer buffer to the first register we want to write
67 g_twi_transfer_buffer[0] = i + start_reg_addr; 66 i2c_transfer_buffer[0] = i + start_reg_addr;
68 // Copy the section of our source buffer into the transfer buffer after first register address 67 // Copy the section of our source buffer into the transfer buffer after first register address
69 memcpy(g_twi_transfer_buffer + 1, source_buffer + i, transfer_size); 68 memcpy(i2c_transfer_buffer + 1, source_buffer + i, transfer_size);
70 69
71#if ISSI_PERSISTENCE > 0 70#if ISSI_PERSISTENCE > 0
72 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) { 71 for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
73 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, transfer_size + 1, ISSI_TIMEOUT) != 0) { 72 if (i2c_transmit(addr << 1, i2c_transfer_buffer, transfer_size + 1, ISSI_TIMEOUT) != 0) {
74 return false; 73 return false;
75 } 74 }
76 } 75 }
77#else 76#else
78 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, transfer_size + 1, ISSI_TIMEOUT) != 0) { 77 if (i2c_transmit(addr << 1, i2c_transfer_buffer, transfer_size + 1, ISSI_TIMEOUT) != 0) {
79 return false; 78 return false;
80 } 79 }
81#endif 80#endif
diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c
index 3906b0eb4b..7b7a82f90f 100644
--- a/drivers/led/snled27351-simple.c
+++ b/drivers/led/snled27351-simple.c
@@ -37,8 +37,7 @@
37 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } 37 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
38#endif 38#endif
39 39
40// Transfer buffer for TWITransmitData() 40uint8_t i2c_transfer_buffer[20];
41uint8_t g_twi_transfer_buffer[20];
42 41
43// These buffers match the SNLED27351 PWM registers. 42// These buffers match the SNLED27351 PWM registers.
44// The control buffers match the PG0 LED On/Off registers. 43// The control buffers match the PG0 LED On/Off registers.
@@ -54,17 +53,17 @@ bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT]
54 53
55bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 54bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
56 // If the transaction fails function returns false. 55 // If the transaction fails function returns false.
57 g_twi_transfer_buffer[0] = reg; 56 i2c_transfer_buffer[0] = reg;
58 g_twi_transfer_buffer[1] = data; 57 i2c_transfer_buffer[1] = data;
59 58
60#if SNLED27351_I2C_PERSISTENCE > 0 59#if SNLED27351_I2C_PERSISTENCE > 0
61 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { 60 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
62 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { 61 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
63 return false; 62 return false;
64 } 63 }
65 } 64 }
66#else 65#else
67 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { 66 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
68 return false; 67 return false;
69 } 68 }
70#endif 69#endif
@@ -79,26 +78,26 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
79 // Assumes PG1 is already selected. 78 // Assumes PG1 is already selected.
80 // If any of the transactions fails function returns false. 79 // If any of the transactions fails function returns false.
81 // Transmit PWM registers in 12 transfers of 16 bytes. 80 // Transmit PWM registers in 12 transfers of 16 bytes.
82 // g_twi_transfer_buffer[] is 20 bytes 81 // i2c_transfer_buffer[] is 20 bytes
83 82
84 // Iterate over the pwm_buffer contents at 16 byte intervals. 83 // Iterate over the pwm_buffer contents at 16 byte intervals.
85 for (int i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 16) { 84 for (int i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 16) {
86 g_twi_transfer_buffer[0] = i; 85 i2c_transfer_buffer[0] = i;
87 // Copy the data from i to i+15. 86 // Copy the data from i to i+15.
88 // Device will auto-increment register for data after the first byte 87 // Device will auto-increment register for data after the first byte
89 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. 88 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
90 for (int j = 0; j < 16; j++) { 89 for (int j = 0; j < 16; j++) {
91 g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; 90 i2c_transfer_buffer[1 + j] = pwm_buffer[i + j];
92 } 91 }
93 92
94#if SNLED27351_I2C_PERSISTENCE > 0 93#if SNLED27351_I2C_PERSISTENCE > 0
95 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { 94 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
96 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) { 95 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) {
97 return false; 96 return false;
98 } 97 }
99 } 98 }
100#else 99#else
101 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) { 100 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) {
102 return false; 101 return false;
103 } 102 }
104#endif 103#endif
diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c
index b22a4af779..d985e4c5f1 100644
--- a/drivers/led/snled27351.c
+++ b/drivers/led/snled27351.c
@@ -37,8 +37,7 @@
37 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } 37 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
38#endif 38#endif
39 39
40// Transfer buffer for TWITransmitData() 40uint8_t i2c_transfer_buffer[65];
41uint8_t g_twi_transfer_buffer[65];
42 41
43// These buffers match the SNLED27351 PWM registers. 42// These buffers match the SNLED27351 PWM registers.
44// The control buffers match the PG0 LED On/Off registers. 43// The control buffers match the PG0 LED On/Off registers.
@@ -54,17 +53,17 @@ bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT]
54 53
55bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) { 54bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
56 // If the transaction fails function returns false. 55 // If the transaction fails function returns false.
57 g_twi_transfer_buffer[0] = reg; 56 i2c_transfer_buffer[0] = reg;
58 g_twi_transfer_buffer[1] = data; 57 i2c_transfer_buffer[1] = data;
59 58
60#if SNLED27351_I2C_PERSISTENCE > 0 59#if SNLED27351_I2C_PERSISTENCE > 0
61 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { 60 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
62 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { 61 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
63 return false; 62 return false;
64 } 63 }
65 } 64 }
66#else 65#else
67 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) { 66 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
68 return false; 67 return false;
69 } 68 }
70#endif 69#endif
@@ -82,22 +81,22 @@ bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
82 81
83 // Iterate over the pwm_buffer contents at 64 byte intervals. 82 // Iterate over the pwm_buffer contents at 64 byte intervals.
84 for (uint8_t i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 64) { 83 for (uint8_t i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 64) {
85 g_twi_transfer_buffer[0] = i; 84 i2c_transfer_buffer[0] = i;
86 // Copy the data from i to i+63. 85 // Copy the data from i to i+63.
87 // Device will auto-increment register for data after the first byte 86 // Device will auto-increment register for data after the first byte
88 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. 87 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
89 for (uint8_t j = 0; j < 64; j++) { 88 for (uint8_t j = 0; j < 64; j++) {
90 g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; 89 i2c_transfer_buffer[1 + j] = pwm_buffer[i + j];
91 } 90 }
92 91
93#if SNLED27351_I2C_PERSISTENCE > 0 92#if SNLED27351_I2C_PERSISTENCE > 0
94 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) { 93 for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
95 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) { 94 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) {
96 return false; 95 return false;
97 } 96 }
98 } 97 }
99#else 98#else
100 if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) { 99 if (i2c_transmit(addr << 1, i2c_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) {
101 return false; 100 return false;
102 } 101 }
103#endif 102#endif
diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c
index baa3e70833..385416439a 100644
--- a/keyboards/input_club/k_type/is31fl3733-dual.c
+++ b/keyboards/input_club/k_type/is31fl3733-dual.c
@@ -60,8 +60,7 @@
60# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE 60# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE
61#endif 61#endif
62 62
63// Transfer buffer for TWITransmitData() 63uint8_t i2c_transfer_buffer[20];
64uint8_t g_twi_transfer_buffer[20];
65 64
66// These buffers match the IS31FL3733 PWM registers. 65// These buffers match the IS31FL3733 PWM registers.
67// The control buffers match the page 0 LED On/Off registers. 66// The control buffers match the page 0 LED On/Off registers.
@@ -77,17 +76,17 @@ bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT]
77 76
78bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) { 77bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) {
79 // If the transaction fails function returns false. 78 // If the transaction fails function returns false.
80 g_twi_transfer_buffer[0] = reg; 79 i2c_transfer_buffer[0] = reg;
81 g_twi_transfer_buffer[1] = data; 80 i2c_transfer_buffer[1] = data;
82 81
83#if IS31FL3733_I2C_PERSISTENCE > 0 82#if IS31FL3733_I2C_PERSISTENCE > 0
84 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { 83 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
85 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { 84 if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
86 return false; 85 return false;
87 } 86 }
88 } 87 }
89#else 88#else
90 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) { 89 if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
91 return false; 90 return false;
92 } 91 }
93#endif 92#endif
@@ -103,26 +102,26 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe
103 // Assumes page 1 is already selected. 102 // Assumes page 1 is already selected.
104 // If any of the transactions fails function returns false. 103 // If any of the transactions fails function returns false.
105 // Transmit PWM registers in 12 transfers of 16 bytes. 104 // Transmit PWM registers in 12 transfers of 16 bytes.
106 // g_twi_transfer_buffer[] is 20 bytes 105 // i2c_transfer_buffer[] is 20 bytes
107 106
108 // Iterate over the pwm_buffer contents at 16 byte intervals. 107 // Iterate over the pwm_buffer contents at 16 byte intervals.
109 for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) { 108 for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
110 g_twi_transfer_buffer[0] = i; 109 i2c_transfer_buffer[0] = i;
111 // Copy the data from i to i+15. 110 // Copy the data from i to i+15.
112 // Device will auto-increment register for data after the first byte 111 // Device will auto-increment register for data after the first byte
113 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer. 112 // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
114 for (int j = 0; j < 16; j++) { 113 for (int j = 0; j < 16; j++) {
115 g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j]; 114 i2c_transfer_buffer[1 + j] = pwm_buffer[i + j];
116 } 115 }
117 116
118#if IS31FL3733_I2C_PERSISTENCE > 0 117#if IS31FL3733_I2C_PERSISTENCE > 0
119 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) { 118 for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
120 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { 119 if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
121 return false; 120 return false;
122 } 121 }
123 } 122 }
124#else 123#else
125 if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) { 124 if (i2c_transmit(index, addr << 1, i2c_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
126 return false; 125 return false;
127 } 126 }
128#endif 127#endif