qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

eeprom_wear_leveling.c (719B)


      1 // Copyright 2022 Nick Brassel (@tzarc)
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 #include <stdint.h>
      4 #include <string.h>
      5 
      6 #include "eeprom_driver.h"
      7 #include "wear_leveling.h"
      8 
      9 void eeprom_driver_init(void) {
     10     wear_leveling_init();
     11 }
     12 
     13 void eeprom_driver_format(bool erase) {
     14     /* wear leveling requires the write log data structures to be erased before use. */
     15     (void)erase;
     16     eeprom_driver_erase();
     17 }
     18 
     19 void eeprom_driver_erase(void) {
     20     wear_leveling_erase();
     21 }
     22 
     23 void eeprom_read_block(void *buf, const void *addr, size_t len) {
     24     wear_leveling_read((uint32_t)addr, buf, len);
     25 }
     26 
     27 void eeprom_write_block(const void *buf, void *addr, size_t len) {
     28     wear_leveling_write((uint32_t)addr, buf, len);
     29 }