diff options
99 files changed, 5520 insertions, 5543 deletions
diff --git a/builddefs/converters.mk b/builddefs/converters.mk index 17b1c3b6ee..a3548afd60 100644 --- a/builddefs/converters.mk +++ b/builddefs/converters.mk @@ -7,7 +7,12 @@ endif # TODO: opt in rather than assume everything uses a pro micro PIN_COMPATIBLE ?= promicro + +# Remove whitespace from any rule.mk provided vars +# - env cannot be overwritten but cannot have whitespace anyway +CONVERT_TO:=$(strip $(CONVERT_TO)) ifneq ($(CONVERT_TO),) + # stash so we can overwrite env provided vars if needed ACTIVE_CONVERTER=$(CONVERT_TO) @@ -23,13 +28,13 @@ ifneq ($(CONVERT_TO),) TARGET := $(TARGET)_$(CONVERT_TO) # Configure any defaults - OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]')) - OPT_DEFS += -DCONVERTER_TARGET=\"$(strip $(CONVERT_TO))\" + OPT_DEFS += -DCONVERT_TO_$(shell echo $(CONVERT_TO) | tr '[:lower:]' '[:upper:]') + OPT_DEFS += -DCONVERTER_TARGET=\"$(CONVERT_TO)\" OPT_DEFS += -DCONVERTER_ENABLED VPATH += $(CONVERTER) # Configure for "alias" - worst case it produces an idential define - OPT_DEFS += -DCONVERT_TO_$(strip $(shell echo $(ACTIVE_CONVERTER) | tr '[:lower:]' '[:upper:]')) + OPT_DEFS += -DCONVERT_TO_$(shell echo $(ACTIVE_CONVERTER) | tr '[:lower:]' '[:upper:]') # Finally run any converter specific logic include $(CONVERTER)/converter.mk diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c index cbb0b60774..7895f1497b 100644 --- a/drivers/led/aw20216.c +++ b/drivers/led/aw20216.c @@ -1,4 +1,5 @@ /* Copyright 2021 Jasper Chan + * 2023 Huckies <https://github.com/Huckies> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +16,7 @@ */ #include "aw20216.h" +#include "wait.h" #include "spi_master.h" /* The AW20216 appears to be somewhat similar to the IS31FL743, although quite @@ -34,6 +36,8 @@ #define AW_REG_CONFIGURATION 0x00 // PG0 #define AW_REG_GLOBALCURRENT 0x01 // PG0 +#define AW_REG_RESET 0x2F // PG0 +#define AW_REG_MIXFUNCTION 0x46 // PG0 // Default value of AW_REG_CONFIGURATION // D7:D4 = 1011, SWSEL (SW1~SW12 active) @@ -41,7 +45,10 @@ // D2:D1 = 00, OSDE (open/short detection enable) // D0 = 0, CHIPEN (write 1 to enable LEDs when hardware enable pulled high) #define AW_CONFIG_DEFAULT 0b10110000 +#define AW_MIXCR_DEFAULT 0b00000000 +#define AW_RESET_CMD 0xAE #define AW_CHIPEN 1 +#define AW_LPEN (0x01 << 1) #define AW_PWM_REGISTER_COUNT 216 @@ -94,6 +101,10 @@ static inline bool AW20216_write_register(pin_t cs_pin, uint8_t page, uint8_t re return AW20216_write(cs_pin, page, reg, &value, 1); } +void AW20216_soft_reset(pin_t cs_pin) { + AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_RESET, AW_RESET_CMD); +} + static void AW20216_init_scaling(pin_t cs_pin) { // Set constant current to the max, control brightness with PWM for (uint8_t i = 0; i < AW_PWM_REGISTER_COUNT; i++) { @@ -111,15 +122,23 @@ static inline void AW20216_soft_enable(pin_t cs_pin) { AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_CONFIGURATION, AW_CONFIG_DEFAULT | AW_CHIPEN); } +static inline void AW20216_auto_lowpower(pin_t cs_pin) { + AW20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_MIXFUNCTION, AW_MIXCR_DEFAULT | AW_LPEN); +} + void AW20216_init(pin_t cs_pin, pin_t en_pin) { setPinOutput(en_pin); writePinHigh(en_pin); + AW20216_soft_reset(cs_pin); + wait_ms(2); + // Drivers should start with all scaling and PWM registers as off AW20216_init_current_limit(cs_pin); AW20216_init_scaling(cs_pin); AW20216_soft_enable(cs_pin); + AW20216_auto_lowpower(cs_pin); } void AW20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { diff --git a/keyboards/1upkeyboards/pi60/info.json b/keyboards/1upkeyboards/pi60/info.json index d8a63123cf..ecb38b92b2 100644 --- a/keyboards/1upkeyboards/pi60/info.json +++ b/keyboards/1upkeyboards/pi60/info.json @@ -74,74 +74,74 @@ "layouts": { "LAYOUT_60_ansi": { "layout": [ - { "label": "Esc", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, - { "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, - { "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, - { "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, - { "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, - { "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, - { "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, - { "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, - { "label": "8", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, - { "label": "9", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, - { "label": "0", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, - { "label": "-", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, - { "label": "=", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, - { "label": "BS", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, - { "label": "~", "matrix": [0, 14], "w": 1, "x": 14, "y": 0 }, + { "label": "Esc", "matrix": [0, 0], "x": 0, "y": 0 }, + { "label": "1", "matrix": [0, 1], "x": 1, "y": 0 }, + { "label": "2", "matrix": [0, 2], "x": 2, "y": 0 }, + { "label": "3", "matrix": [0, 3], "x": 3, "y": 0 }, + { "label": "4", "matrix": [0, 4], "x": 4, "y": 0 }, + { "label": "5", "matrix": [0, 5], "x": 5, "y": 0 }, + { "label": "6", "matrix": [0, 6], "x": 6, "y": 0 }, + { "label": "7", "matrix": [0, 7], "x": 7, "y": 0 }, + { "label": "8", "matrix": [0, 8], "x": 8, "y": 0 }, + { "label": "9", "matrix": [0, 9], "x": 9, "y": 0 }, + { "label": "0", "matrix": [0, 10], "x": 10, "y": 0 }, + { "label": "-", "matrix": [0, 11], "x": 11, "y": 0 }, + { "label": "=", "matrix": [0, 12], "x": 12, "y": 0 }, + { "label": "BS", "matrix": [0, 13], "x": 13, "y": 0 }, + { "label": "~", "matrix": [0, 14], "x": 14, "y": 0 }, { "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, - { "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, - { "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, - { "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, - { "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, - { "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, - { "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, - { "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, - { "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, - { "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, - { "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, - { "label": "[", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, - { "label": "]", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, + { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 }, + { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 }, + { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 }, + { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 }, + { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 }, + { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 }, + { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 }, + { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 }, + { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 }, + { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 }, + { "label": "[", "matrix": [1, 11], "x": 11.5, "y": 1 }, + { "label": "]", "matrix": [1, 12], "x": 12.5, "y": 1 }, { "label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, { "label": "Caps", "matrix": [2, 15], "w": 1.75, "x": 0, "y": 2 }, - { "label": "A", "matrix": |