浏览代码

Merge remote-tracking branch 'origin/master' into develop

QMK Bot 2 年之前
父节点
当前提交
0e60b3a620
共有 2 个文件被更改,包括 37 次插入0 次删除
  1. 34 0
      keyboards/tzarc/djinn/djinn.c
  2. 3 0
      keyboards/tzarc/djinn/keymaps/default/config.h

+ 34 - 0
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()) {

+ 3 - 0
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