diff options
author | Nick Brassel <nick@tzarc.org> | 2022-06-24 14:11:06 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-24 14:11:06 +1000 |
commit | a8677ed296d2304849318166f006db5b790acd9f (patch) | |
tree | 697013dc50b2a7c3e6c8e090f63f1a3a2433c7b8 | |
parent | 71472a169240868bcf76d4d6c242519782b5cc5b (diff) | |
download | qmk_firmware-a8677ed296d2304849318166f006db5b790acd9f.tar.gz qmk_firmware-a8677ed296d2304849318166f006db5b790acd9f.zip |
Fix up Djinn fuse handling. (#17465)
-rw-r--r-- | keyboards/tzarc/djinn/djinn.c | 34 | ||||
-rw-r--r-- | keyboards/tzarc/djinn/keymaps/default/config.h | 3 |
2 files changed, 37 insertions, 0 deletions
diff --git a/keyboards/tzarc/djinn/djinn.c b/keyboards/tzarc/djinn/djinn.c index 41155a6584..23f59991a9 100644 --- a/keyboards/tzarc/djinn/djinn.c +++ b/keyboards/tzarc/djinn/djinn.c @@ -92,6 +92,9 @@ void keyboard_post_init_kb(void) { #if defined(RGB_MATRIX_ENABLE) RGB rgb_matrix_hsv_to_rgb(HSV hsv) { float scale; + +# ifdef DJINN_SUPPORTS_3A_FUSE + // The updated BOM on the Djinn has properly-spec'ed fuses -- 1500mA/3000mA hold current switch (kb_state.current_setting) { default: case USBPD_500MA: @@ -104,6 +107,19 @@ RGB rgb_matrix_hsv_to_rgb(HSV hsv) { scale = 1.0f; break; } +# else + // The original BOM on the Djinn had wrongly-spec'ed fuses -- 750mA/1500mA hold current + switch (kb_state.current_setting) { + default: + case USBPD_500MA: + case USBPD_1500MA: + scale = 0.35f; + break; + case USBPD_3000MA: + scale = 0.75f; + break; + } +# endif hsv.v = (uint8_t)(hsv.v * scale); return hsv_to_rgb(hsv); @@ -129,6 +145,9 @@ void housekeeping_task_kb(void) { static uint8_t current_setting = USBPD_500MA; if (current_setting != kb_state.current_setting) { current_setting = kb_state.current_setting; + +#ifdef DJINN_SUPPORTS_3A_FUSE + // The updated BOM on the Djinn has properly-spec'ed fuses -- 1500mA/3000mA hold current switch (current_setting) { default: case USBPD_500MA: @@ -144,6 +163,21 @@ void housekeeping_task_kb(void) { writePinHigh(RGB_CURR_3000mA_OK_PIN); break; } +#else + // The original BOM on the Djinn had wrongly-spec'ed fuses -- 750mA/1500mA hold current + switch (current_setting) { + default: + case USBPD_500MA: + case USBPD_1500MA: + writePinLow(RGB_CURR_1500mA_OK_PIN); + writePinLow(RGB_CURR_3000mA_OK_PIN); + break; + case USBPD_3000MA: + writePinHigh(RGB_CURR_1500mA_OK_PIN); + writePinLow(RGB_CURR_3000mA_OK_PIN); + break; + } +#endif // If we've changed the current limit, toggle rgb off and on if it was on, to force a brightness update on all LEDs if (is_keyboard_master() && rgb_matrix_is_enabled()) { diff --git a/keyboards/tzarc/djinn/keymaps/default/config.h b/keyboards/tzarc/djinn/keymaps/default/config.h index 87e3e11665..b40936ff93 100644 --- a/keyboards/tzarc/djinn/keymaps/default/config.h +++ b/keyboards/tzarc/djinn/keymaps/default/config.h @@ -2,6 +2,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once +// Uncomment the following if your board uses 1.5A and 3.0A hold current fuses. +//#define DJINN_SUPPORTS_3A_FUSE + // Encoder settings #define ENCODER_RESOLUTION 2 |