summaryrefslogtreecommitdiff
path: root/quantum/backlight
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2025-03-21 23:38:34 +1100
committerGitHub <noreply@github.com>2025-03-21 23:38:34 +1100
commit2b00b846dce1d1267dfdb2a3c2972a367cc0dd44 (patch)
tree6d801a8d83c58ee646b789bfa9ab912857ee7d8c /quantum/backlight
parentc9d62ddc78e879053241202b288d0129073b07dc (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.c31
-rw-r--r--quantum/backlight/backlight.h8
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 */
57void backlight_init(void) { 56void 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 */
174void backlight_level(uint8_t level) { 173void 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
179uint8_t eeconfig_read_backlight(void) {
180 return eeprom_read_byte(EECONFIG_BACKLIGHT);
181}
182
183void eeconfig_update_backlight(uint8_t val) {
184 eeprom_update_byte(EECONFIG_BACKLIGHT, val);
185} 176}
186 177
187void eeconfig_update_backlight_current(void) { 178void eeconfig_update_backlight_current(void) {
188 eeconfig_update_backlight(backlight_config.raw); 179 eeconfig_update_backlight(&backlight_config);
189} 180}
190 181
191void eeconfig_update_backlight_default(void) { 182void 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
37typedef union { 37typedef 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);
58void backlight_level(uint8_t level); 58void backlight_level(uint8_t level);
59uint8_t get_backlight_level(void); 59uint8_t get_backlight_level(void);
60 60
61uint8_t eeconfig_read_backlight(void); 61void eeconfig_update_backlight_current(void);
62void eeconfig_update_backlight(uint8_t val); 62void eeconfig_update_backlight_default(void);
63void eeconfig_update_backlight_current(void);
64void eeconfig_update_backlight_default(void);
65 63
66// implementation specific 64// implementation specific
67void backlight_init_ports(void); 65void backlight_init_ports(void);