summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/mappings/info_config.hjson4
-rw-r--r--data/mappings/info_rules.hjson1
-rw-r--r--data/schemas/keyboard.jsonschema14
-rw-r--r--docs/reference_info_json.md7
4 files changed, 25 insertions, 1 deletions
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index ab9a4a0e45..c3db2e46a2 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -49,6 +49,10 @@
"DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
"DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
+ // EEPROM
+ "WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
+ "WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
+
// Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 07191551da..6a0f0a3030 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -42,6 +42,7 @@
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
+ "WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"},
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 901caa75fe..0f0576b1c3 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -247,7 +247,19 @@
},
"eeprom": {
"properties": {
- "driver": {"type": "string"}
+ "driver": {"type": "string"},
+ "wear_leveling": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
+ },
+ "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ }
}
},
"encoder": {
diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md
index 91581afc73..b81aacb43c 100644
--- a/docs/reference_info_json.md
+++ b/docs/reference_info_json.md
@@ -202,6 +202,13 @@ Configures the [EEPROM](eeprom_driver.md) driver.
* `driver`
* The EEPROM backend to use. Must be one of `custom`, `i2c`, `legacy_stm32_flash`, `spi`, `transient`, `vendor`, `wear_leveling`.
* Default: `"vendor"`
+ * `wear_leveling`
+ * `driver`
+ * The driver to use. Must be one of `embedded_flash`, `legacy`, `rp2040_flash`, `spi_flash`, `custom`.
+ * `backing_size`
+ * Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
+ * `logical_size`
+ * Number of bytes “exposed” to the rest of QMK and denotes the size of the usable EEPROM.
## Encoder :id=encoder