Browse Source

Added global current to all other issi drivers who don't have it (#17448)

Jamal Bouajjaj 3 years ago
parent
commit
d3858585ac

+ 1 - 0
docs/feature_rgb_matrix.md

@@ -86,6 +86,7 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
 | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
 | `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
 | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
 | `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
 | `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
 | `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
+| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
 | `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
 | `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
 | `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
 | `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
 | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
 | `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |

+ 5 - 1
drivers/led/issi/is31fl3733-simple.c

@@ -70,6 +70,10 @@
 #    define ISSI_CSPULLUP PUR_0R
 #    define ISSI_CSPULLUP PUR_0R
 #endif
 #endif
 
 
+#ifndef ISSI_GLOBALCURRENT
+#    define ISSI_GLOBALCURRENT 0xFF
+#endif
+
 // Transfer buffer for TWITransmitData()
 // Transfer buffer for TWITransmitData()
 uint8_t g_twi_transfer_buffer[20];
 uint8_t g_twi_transfer_buffer[20];
 
 
@@ -182,7 +186,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) {
     // Set de-ghost pull-down resistors (CSx)
     // Set de-ghost pull-down resistors (CSx)
     IS31FL3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
     IS31FL3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
     // Set global current to maximum.
     // Set global current to maximum.
-    IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
+    IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
     // Disable software shutdown.
     // Disable software shutdown.
     IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
     IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
 
 

+ 5 - 1
drivers/led/issi/is31fl3733.c

@@ -69,6 +69,10 @@
 #    define ISSI_CSPULLUP PUR_0R
 #    define ISSI_CSPULLUP PUR_0R
 #endif
 #endif
 
 
+#ifndef ISSI_GLOBALCURRENT
+#    define ISSI_GLOBALCURRENT 0xFF
+#endif
+
 // Transfer buffer for TWITransmitData()
 // Transfer buffer for TWITransmitData()
 uint8_t g_twi_transfer_buffer[20];
 uint8_t g_twi_transfer_buffer[20];
 
 
@@ -172,7 +176,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) {
     // Set de-ghost pull-down resistors (CSx)
     // Set de-ghost pull-down resistors (CSx)
     IS31FL3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
     IS31FL3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
     // Set global current to maximum.
     // Set global current to maximum.
-    IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
+    IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
     // Disable software shutdown.
     // Disable software shutdown.
     IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
     IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
 
 

+ 5 - 1
drivers/led/issi/is31fl3736.c

@@ -63,6 +63,10 @@
 #    define ISSI_CSPULLUP PUR_0R
 #    define ISSI_CSPULLUP PUR_0R
 #endif
 #endif
 
 
+#ifndef ISSI_GLOBALCURRENT
+#    define ISSI_GLOBALCURRENT 0xFF
+#endif
+
 // Transfer buffer for TWITransmitData()
 // Transfer buffer for TWITransmitData()
 uint8_t g_twi_transfer_buffer[20];
 uint8_t g_twi_transfer_buffer[20];
 
 
@@ -154,7 +158,7 @@ void IS31FL3736_init(uint8_t addr) {
     // Set de-ghost pull-down resistors (CSx)
     // Set de-ghost pull-down resistors (CSx)
     IS31FL3736_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
     IS31FL3736_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
     // Set global current to maximum.
     // Set global current to maximum.
-    IS31FL3736_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
+    IS31FL3736_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
     // Disable software shutdown.
     // Disable software shutdown.
     IS31FL3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
     IS31FL3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
 
 

+ 5 - 1
drivers/led/issi/is31fl3741.c

@@ -69,6 +69,10 @@
 #    define ISSI_CSPULLUP PUR_32KR
 #    define ISSI_CSPULLUP PUR_32KR
 #endif
 #endif
 
 
+#ifndef ISSI_GLOBALCURRENT
+#    define ISSI_GLOBALCURRENT 0xFF
+#endif
+
 #define ISSI_MAX_LEDS 351
 #define ISSI_MAX_LEDS 351
 
 
 // Transfer buffer for TWITransmitData()
 // Transfer buffer for TWITransmitData()
@@ -163,7 +167,7 @@ void IS31FL3741_init(uint8_t addr) {
     IS31FL3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
     IS31FL3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
 
 
     // Set Golbal Current Control Register
     // Set Golbal Current Control Register
-    IS31FL3741_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
+    IS31FL3741_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
     // Set Pull up & Down for SWx CSy
     // Set Pull up & Down for SWx CSy
     IS31FL3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP));
     IS31FL3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP));