diff options
| author | Nick Brassel <nick@tzarc.org> | 2025-03-21 23:38:34 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-21 23:38:34 +1100 |
| commit | 2b00b846dce1d1267dfdb2a3c2972a367cc0dd44 (patch) | |
| tree | 6d801a8d83c58ee646b789bfa9ab912857ee7d8c /quantum/backlight | |
| parent | c9d62ddc78e879053241202b288d0129073b07dc (diff) | |
Non-volatile memory data repository pattern (#24356)
* First batch of eeconfig conversions.
* Offset and length for datablocks.
* `via`, `dynamic_keymap`.
* Fix filename.
* Commentary.
* wilba leds
* satisfaction75
* satisfaction75
* more keyboard whack-a-mole
* satisfaction75
* omnikeyish
* more whack-a-mole
* `generic_features.mk` to automatically pick up nvm repositories
* thievery
* deferred variable resolve
* whitespace
* convert api to structs/unions
* convert api to structs/unions
* convert api to structs/unions
* fixups
* code-side docs
* code size fix
* rollback
* nvm_xxxxx_erase
* Updated location of eeconfig magic numbers so non-EEPROM nvm drivers can use them too.
* Fixup build.
* Fixup compilation error with encoders.
* Build fixes.
* Add `via_ci` keymap to onekey to exercise VIA bindings (and thus dynamic keymap et.al.), fixup compilation errors based on preprocessor+sizeof.
* Build failure rectification.
Diffstat (limited to 'quantum/backlight')
| -rw-r--r-- | quantum/backlight/backlight.c | 31 | ||||
| -rw-r--r-- | quantum/backlight/backlight.h | 8 |
2 files changed, 14 insertions, 25 deletions
diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c index eb64dd71e8..a7d2a45a51 100644 --- a/quantum/backlight/backlight.c +++ b/quantum/backlight/backlight.c | |||
| @@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 16 | */ | 16 | */ |
| 17 | 17 | ||
| 18 | #include "backlight.h" | 18 | #include "backlight.h" |
| 19 | #include "eeprom.h" | ||
| 20 | #include "eeconfig.h" | 19 | #include "eeconfig.h" |
| 21 | #include "debug.h" | 20 | #include "debug.h" |
| 22 | 21 | ||
| @@ -55,7 +54,7 @@ static void backlight_check_config(void) { | |||
| 55 | * FIXME: needs doc | 54 | * FIXME: needs doc |
| 56 | */ | 55 | */ |
| 57 | void backlight_init(void) { | 56 | void backlight_init(void) { |
| 58 | backlight_config.raw = eeconfig_read_backlight(); | 57 | eeconfig_read_backlight(&backlight_config); |
| 59 | if (!backlight_config.valid) { | 58 | if (!backlight_config.valid) { |
| 60 | dprintf("backlight_init backlight_config.valid = 0. Write default values to EEPROM.\n"); | 59 | dprintf("backlight_init backlight_config.valid = 0. Write default values to EEPROM.\n"); |
| 61 | eeconfig_update_backlight_default(); | 60 | eeconfig_update_backlight_default(); |
| @@ -74,7 +73,7 @@ void backlight_increase(void) { | |||
| 74 | backlight_config.level++; | 73 | backlight_config.level++; |
| 75 | } | 74 | } |
| 76 | backlight_config.enable = 1; | 75 | backlight_config.enable = 1; |
| 77 | eeconfig_update_backlight(backlight_config.raw); | 76 | eeconfig_update_backlight(&backlight_config); |
| 78 | dprintf("backlight increase: %u\n", backlight_config.level); | 77 | dprintf("backlight increase: %u\n", backlight_config.level); |
| 79 | backlight_set(backlight_config.level); | 78 | backlight_set(backlight_config.level); |
| 80 | } | 79 | } |
| @@ -87,7 +86,7 @@ void backlight_decrease(void) { | |||
| 87 | if (backlight_config.level > 0) { | 86 | if (backlight_config.level > 0) { |
| 88 | backlight_config.level--; | 87 | backlight_config.level--; |
| 89 | backlight_config.enable = !!backlight_config.level; | 88 | backlight_config.enable = !!backlight_config.level; |
| 90 | eeconfig_update_backlight(backlight_config.raw); | 89 | eeconfig_update_backlight(&backlight_config); |
| 91 | } | 90 | } |
| 92 | dprintf("backlight decrease: %u\n", backlight_config.level); | 91 | dprintf("backlight decrease: %u\n", backlight_config.level); |
| 93 | backlight_set(backlight_config.level); | 92 | backlight_set(backlight_config.level); |
| @@ -116,7 +115,7 @@ void backlight_enable(void) { | |||
| 116 | backlight_config.enable = true; | 115 | backlight_config.enable = true; |
| 117 | if (backlight_config.raw == 1) // enabled but level == 0 | 116 | if (backlight_config.raw == 1) // enabled but level == 0 |
| 118 | backlight_config.level = 1; | 117 | backlight_config.level = 1; |
| 119 | eeconfig_update_backlight(backlight_config.raw); | 118 | eeconfig_update_backlight(&backlight_config); |
| 120 | dprintf("backlight enable\n"); | 119 | dprintf("backlight enable\n"); |
| 121 | backlight_set(backlight_config.level); | 120 | backlight_set(backlight_config.level); |
| 122 | } | 121 | } |
| @@ -129,7 +128,7 @@ void backlight_disable(void) { | |||
| 129 | if (!backlight_config.enable) return; // do nothing if backlight is already off | 128 | if (!backlight_config.enable) return; // do nothing if backlight is already off |
| 130 | 129 | ||
| 131 | backlight_config.enable = false; | 130 | backlight_config.enable = false; |
| 132 | eeconfig_update_backlight(backlight_config.raw); | 131 | eeconfig_update_backlight(&backlight_config); |
| 133 | dprintf("backlight disable\n"); | 132 | dprintf("backlight disable\n"); |
| 134 | backlight_set(0); | 133 | backlight_set(0); |
| 135 | } | 134 | } |
| @@ -152,7 +151,7 @@ void backlight_step(void) { | |||
| 152 | backlight_config.level = 0; | 151 | backlight_config.level = 0; |
| 153 | } | 152 | } |
| 154 | backlight_config.enable = !!backlight_config.level; | 153 | backlight_config.enable = !!backlight_config.level; |
| 155 | eeconfig_update_backlight(backlight_config.raw); | 154 | eeconfig_update_backlight(&backlight_config); |
| 156 | dprintf("backlight step: %u\n", backlight_config.level); | 155 | dprintf("backlight step: %u\n", backlight_config.level); |
| 157 | backlight_set(backlight_config.level); | 156 | backlight_set(backlight_config.level); |
| 158 | } | 157 | } |
| @@ -173,19 +172,11 @@ void backlight_level_noeeprom(uint8_t level) { | |||
| 173 | */ | 172 | */ |
| 174 | void backlight_level(uint8_t level) { | 173 | void backlight_level(uint8_t level) { |
| 175 | backlight_level_noeeprom(level); | 174 | backlight_level_noeeprom(level); |
| 176 | eeconfig_update_backlight(backlight_config.raw); | 175 | eeconfig_update_backlight(&backlight_config); |
| 177 | } | ||
| 178 | |||
| 179 | uint8_t eeconfig_read_backlight(void) { | ||
| 180 | return eeprom_read_byte(EECONFIG_BACKLIGHT); | ||
| 181 | } | ||
| 182 | |||
| 183 | void eeconfig_update_backlight(uint8_t val) { | ||
| 184 | eeprom_update_byte(EECONFIG_BACKLIGHT, val); | ||
| 185 | } | 176 | } |
| 186 | 177 | ||
| 187 | void eeconfig_update_backlight_current(void) { | 178 | void eeconfig_update_backlight_current(void) { |
| 188 | eeconfig_update_backlight(backlight_config.raw); | 179 | eeconfig_update_backlight(&backlight_config); |
| 189 | } | 180 | } |
| 190 | 181 | ||
| 191 | void eeconfig_update_backlight_default(void) { | 182 | void eeconfig_update_backlight_default(void) { |
| @@ -193,7 +184,7 @@ void eeconfig_update_backlight_default(void) { | |||
| 193 | backlight_config.enable = BACKLIGHT_DEFAULT_ON; | 184 | backlight_config.enable = BACKLIGHT_DEFAULT_ON; |
| 194 | backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING; | 185 | backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING; |
| 195 | backlight_config.level = BACKLIGHT_DEFAULT_LEVEL; | 186 | backlight_config.level = BACKLIGHT_DEFAULT_LEVEL; |
| 196 | eeconfig_update_backlight(backlight_config.raw); | 187 | eeconfig_update_backlight(&backlight_config); |
| 197 | } | 188 | } |
| 198 | 189 | ||
| 199 | /** \brief Get backlight level | 190 | /** \brief Get backlight level |
| @@ -226,7 +217,7 @@ void backlight_enable_breathing(void) { | |||
| 226 | if (backlight_config.breathing) return; // do nothing if breathing is already on | 217 | if (backlight_config.breathing) return; // do nothing if breathing is already on |
| 227 | 218 | ||
| 228 | backlight_config.breathing = true; | 219 | backlight_config.breathing = true; |
| 229 | eeconfig_update_backlight(backlight_config.raw); | 220 | eeconfig_update_backlight(&backlight_config); |
| 230 | dprintf("backlight breathing enable\n"); | 221 | dprintf("backlight breathing enable\n"); |
| 231 | breathing_enable(); | 222 | breathing_enable(); |
| 232 | } | 223 | } |
| @@ -239,7 +230,7 @@ void backlight_disable_breathing(void) { | |||
| 239 | if (!backlight_config.breathing) return; // do nothing if breathing is already off | 230 | if (!backlight_config.breathing) return; // do nothing if breathing is already off |
| 240 | 231 | ||
| 241 | backlight_config.breathing = false; | 232 | backlight_config.breathing = false; |
| 242 | eeconfig_update_backlight(backlight_config.raw); | 233 | eeconfig_update_backlight(&backlight_config); |
| 243 | dprintf("backlight breathing disable\n"); | 234 | dprintf("backlight breathing disable\n"); |
| 244 | breathing_disable(); | 235 | breathing_disable(); |
| 245 | } | 236 | } |
diff --git a/quantum/backlight/backlight.h b/quantum/backlight/backlight.h index c34fb5858d..561c7f8a94 100644 --- a/quantum/backlight/backlight.h +++ b/quantum/backlight/backlight.h | |||
| @@ -34,7 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 34 | # define BREATHING_PERIOD 6 | 34 | # define BREATHING_PERIOD 6 |
| 35 | #endif | 35 | #endif |
| 36 | 36 | ||
| 37 | typedef union { | 37 | typedef union backlight_config_t { |
| 38 | uint8_t raw; | 38 | uint8_t raw; |
| 39 | struct { | 39 | struct { |
| 40 | bool enable : 1; | 40 | bool enable : 1; |
| @@ -58,10 +58,8 @@ void backlight_level_noeeprom(uint8_t level); | |||
| 58 | void backlight_level(uint8_t level); | 58 | void backlight_level(uint8_t level); |
| 59 | uint8_t get_backlight_level(void); | 59 | uint8_t get_backlight_level(void); |
| 60 | 60 | ||
| 61 | uint8_t eeconfig_read_backlight(void); | 61 | void eeconfig_update_backlight_current(void); |
| 62 | void eeconfig_update_backlight(uint8_t val); | 62 | void eeconfig_update_backlight_default(void); |
| 63 | void eeconfig_update_backlight_current(void); | ||
| 64 | void eeconfig_update_backlight_default(void); | ||
| 65 | 63 | ||
| 66 | // implementation specific | 64 | // implementation specific |
| 67 | void backlight_init_ports(void); | 65 | void backlight_init_ports(void); |
