forked from mirrors/qmk_userspace
		
	Implement data driven wear leveling (#21906)
* DD encoder map, wear leveling * remove encoder map from DD let's avoid the support headache * wear leveling: specify the allowed drivers by name Co-authored-by: Ryan <fauxpark@gmail.com> * Add additional params * Relocate under eeprom * disable parsing --------- Co-authored-by: Dimitris Mantzouranis <d3xter93@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
		
					parent
					
						
							
								a03de8440b
							
						
					
				
			
			
				commit
				
					
						5fab310e65
					
				
			
		
					 4 changed files with 25 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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"},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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": {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue