aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2021-10-30 15:13:40 +0100
committerGitHub <noreply@github.com>2021-10-30 15:13:40 +0100
commitfb739a67c92483f6c072886b9ffbb90e55b6582d (patch)
treee53e55a347ff44912ef47163e5b7f2547849c27b
parent5851ac1934a3948403cd1666f2b9b519224c51ca (diff)
downloadqmk_firmware-fb739a67c92483f6c072886b9ffbb90e55b6582d.tar.gz
qmk_firmware-fb739a67c92483f6c072886b9ffbb90e55b6582d.zip
Enable configuration of PWM frequency for IS31FL3733B (#14983)
* Enable PWM frequency for IS31FL3733B * Document config option * clang
-rw-r--r--docs/feature_rgb_matrix.md1
-rw-r--r--drivers/led/issi/is31fl3733.c6
2 files changed, 6 insertions, 1 deletions
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 2660aad09..708cb9f73 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -82,6 +82,7 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
82|----------|-------------|---------| 82|----------|-------------|---------|
83| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 | 83| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
84| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 | 84| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
85| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
85| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | | 86| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
86| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | | 87| `DRIVER_LED_TOTAL` | (Required) How many RGB lights are present across all drivers | |
87| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | | 88| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c
index d99e5339c..4ddd827ca 100644
--- a/drivers/led/issi/is31fl3733.c
+++ b/drivers/led/issi/is31fl3733.c
@@ -56,6 +56,10 @@
56# define ISSI_PERSISTENCE 0 56# define ISSI_PERSISTENCE 0
57#endif 57#endif
58 58
59#ifndef ISSI_PWM_FREQUENCY
60# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only
61#endif
62
59// Transfer buffer for TWITransmitData() 63// Transfer buffer for TWITransmitData()
60uint8_t g_twi_transfer_buffer[20]; 64uint8_t g_twi_transfer_buffer[20];
61 65
@@ -157,7 +161,7 @@ void IS31FL3733_init(uint8_t addr, uint8_t sync) {
157 // Set global current to maximum. 161 // Set global current to maximum.
158 IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF); 162 IS31FL3733_write_register(addr, ISSI_REG_GLOBALCURRENT, 0xFF);
159 // Disable software shutdown. 163 // Disable software shutdown.
160 IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, (sync << 6) | 0x01); 164 IS31FL3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
161 165
162 // Wait 10ms to ensure the device has woken up. 166 // Wait 10ms to ensure the device has woken up.
163 wait_ms(10); 167 wait_ms(10);