From 00feff656f80d9c9bf57cb1c6ad94ef2f69f1440 Mon Sep 17 00:00:00 2001
From: Joel Challis <git@zvecr.com>
Date: Thu, 14 Sep 2023 00:13:19 +0100
Subject: [PATCH] Migrate WEAR_LEVELING_*_SIZE to info.json (#22010)

---
 keyboards/akko/5108/config.h                  |  1 -
 keyboards/akko/5108/info.json                 |  3 ++-
 keyboards/akko/acr87/config.h                 |  1 -
 keyboards/akko/acr87/info.json                |  3 ++-
 keyboards/akko/top40/config.h                 |  1 -
 keyboards/akko/top40/info.json                |  3 ++-
 keyboards/annepro2/c15/config.h               |  4 ----
 keyboards/annepro2/c15/info.json              |  3 ++-
 keyboards/annepro2/c18/config.h               |  4 ----
 keyboards/annepro2/c18/info.json              |  3 ++-
 keyboards/binepad/bn006/config.h              |  8 -------
 keyboards/binepad/bn006/info.json             |  5 +++++
 keyboards/binepad/bn006/rules.mk              |  6 +-----
 keyboards/binepad/bn009/r2/config.h           | 12 -----------
 keyboards/binepad/bn009/r2/info.json          |  5 +++++
 keyboards/binepad/bnr1/v2/config.h            |  7 -------
 keyboards/chosfox/cf81/config.h               |  1 -
 keyboards/chosfox/cf81/info.json              |  3 ++-
 keyboards/gmmk/gmmk2/p96/ansi/info.json       |  3 ++-
 keyboards/gmmk/gmmk2/p96/config.h             |  1 -
 keyboards/gmmk/gmmk2/p96/iso/info.json        |  3 ++-
 keyboards/gmmk/numpad/config.h                |  1 -
 keyboards/gmmk/numpad/info.json               |  3 ++-
 keyboards/gmmk/pro/rev2/ansi/info.json        |  3 ++-
 keyboards/gmmk/pro/rev2/config.h              |  1 -
 keyboards/gmmk/pro/rev2/iso/info.json         |  3 ++-
 keyboards/hfdkb/ac001/config.h                |  1 -
 keyboards/hfdkb/ac001/info.json               |  3 ++-
 keyboards/horrortroll/handwired_k552/config.h |  4 ----
 .../horrortroll/handwired_k552/info.json      |  3 ++-
 keyboards/ibm/model_m/yugo_m/config.h         |  4 ----
 keyboards/ibm/model_m/yugo_m/info.json        |  5 +++++
 keyboards/inland/kb83/config.h                |  1 -
 keyboards/inland/kb83/info.json               |  3 ++-
 keyboards/inland/mk47/config.h                |  1 -
 keyboards/inland/mk47/info.json               |  3 ++-
 keyboards/mechlovin/hex6c/config.h            |  3 ---
 keyboards/mechlovin/hex6c/info.json           |  5 +++++
 keyboards/mode/m75h/config.h                  | 21 -------------------
 keyboards/mode/m75h/info.json                 |  5 +++++
 keyboards/mode/m75s/config.h                  |  3 ---
 keyboards/mode/m75s/info.json                 |  5 +++++
 keyboards/monsgeek/m1/config.h                |  1 -
 keyboards/monsgeek/m1/info.json               |  3 ++-
 keyboards/monsgeek/m5/config.h                |  1 -
 keyboards/monsgeek/m5/info.json               |  3 ++-
 keyboards/monsgeek/m6/config.h                |  1 -
 keyboards/monsgeek/m6/info.json               |  3 ++-
 .../projectd/65/projectd_65_ansi/config.h     |  1 -
 .../projectd/65/projectd_65_ansi/info.json    |  3 ++-
 keyboards/rgbkb/mun/config.h                  |  3 ---
 keyboards/rgbkb/mun/rev1/info.json            |  5 +++++
 keyboards/rgbkb/sol3/config.h                 |  3 ---
 keyboards/rgbkb/sol3/rev1/info.json           |  5 +++++
 keyboards/xelus/kangaroo/rev2/config.h        |  3 ---
 keyboards/xelus/kangaroo/rev2/info.json       |  5 +++++
 keyboards/xelus/rs60/rev2_1/config.h          |  3 ---
 keyboards/xelus/rs60/rev2_1/info.json         |  5 +++++
 58 files changed, 89 insertions(+), 120 deletions(-)
 delete mode 100644 keyboards/binepad/bn009/r2/config.h
 delete mode 100644 keyboards/binepad/bnr1/v2/config.h
 delete mode 100644 keyboards/mode/m75h/config.h

diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h
index 4c04933bcf..790830c88b 100644
--- a/keyboards/akko/5108/config.h
+++ b/keyboards/akko/5108/config.h
@@ -35,7 +35,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json
index 74379db27b..ef3f85a1ec 100644
--- a/keyboards/akko/5108/info.json
+++ b/keyboards/akko/5108/info.json
@@ -29,7 +29,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "indicators": {
diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h
index 6e4d8dd574..3f61359074 100644
--- a/keyboards/akko/acr87/config.h
+++ b/keyboards/akko/acr87/config.h
@@ -32,7 +32,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 3
diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json
index 5ce22462d9..f9d360282d 100644
--- a/keyboards/akko/acr87/info.json
+++ b/keyboards/akko/acr87/info.json
@@ -29,7 +29,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "rgb_matrix": {
diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h
index e8672856ef..cc72977c4d 100644
--- a/keyboards/akko/top40/config.h
+++ b/keyboards/akko/top40/config.h
@@ -32,7 +32,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json
index e66f79e6c0..3624ee0411 100644
--- a/keyboards/akko/top40/info.json
+++ b/keyboards/akko/top40/info.json
@@ -29,7 +29,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "rgb_matrix": {
diff --git a/keyboards/annepro2/c15/config.h b/keyboards/annepro2/c15/config.h
index ea38f4dce3..f488b9d8f3 100644
--- a/keyboards/annepro2/c15/config.h
+++ b/keyboards/annepro2/c15/config.h
@@ -57,7 +57,3 @@
 #define EXTERNAL_FLASH_SECTOR_SIZE 4096
 #define EXTERNAL_FLASH_BLOCK_SIZE 4096
 #define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size
-
-// Wear-leveling driver configuration
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/annepro2/c15/info.json b/keyboards/annepro2/c15/info.json
index 7138294987..b7624dd6c5 100644
--- a/keyboards/annepro2/c15/info.json
+++ b/keyboards/annepro2/c15/info.json
@@ -6,7 +6,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "rgb_matrix": {
diff --git a/keyboards/annepro2/c18/config.h b/keyboards/annepro2/c18/config.h
index 6b6307c3d0..36f4a25c8d 100644
--- a/keyboards/annepro2/c18/config.h
+++ b/keyboards/annepro2/c18/config.h
@@ -55,7 +55,3 @@
 #define EXTERNAL_FLASH_SECTOR_SIZE 4096
 #define EXTERNAL_FLASH_BLOCK_SIZE 4096
 #define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size
-
-// Wear-leveling driver configuration
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/annepro2/c18/info.json b/keyboards/annepro2/c18/info.json
index 439188b2f7..c8f524e3cf 100644
--- a/keyboards/annepro2/c18/info.json
+++ b/keyboards/annepro2/c18/info.json
@@ -6,7 +6,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "rgb_matrix": {
diff --git a/keyboards/binepad/bn006/config.h b/keyboards/binepad/bn006/config.h
index 41c3822655..0569ccff03 100755
--- a/keyboards/binepad/bn006/config.h
+++ b/keyboards/binepad/bn006/config.h
@@ -3,14 +3,6 @@
 
 #pragma once
 
-/*
- * Wear Leveling EEPROM Emulation
- */
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048                              // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)  // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
-
-
 /*
  * RGB Matrix
  */
diff --git a/keyboards/binepad/bn006/info.json b/keyboards/binepad/bn006/info.json
index 756b82e330..81e68d2e0c 100755
--- a/keyboards/binepad/bn006/info.json
+++ b/keyboards/binepad/bn006/info.json
@@ -24,6 +24,11 @@
         "pid": "0x426E",
         "device_version": "1.0.0"
     },
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "ws2812": {
         "pin": "B15"
     },
diff --git a/keyboards/binepad/bn006/rules.mk b/keyboards/binepad/bn006/rules.mk
index 58561c984b..7ff128fa69 100755
--- a/keyboards/binepad/bn006/rules.mk
+++ b/keyboards/binepad/bn006/rules.mk
@@ -1,5 +1 @@
-# Copyright 2022 Binepad (@binpad)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-EPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
+# This file intentionally left blank
\ No newline at end of file
diff --git a/keyboards/binepad/bn009/r2/config.h b/keyboards/binepad/bn009/r2/config.h
deleted file mode 100644
index 45b63ec105..0000000000
--- a/keyboards/binepad/bn009/r2/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2023 Binepad (@binepad)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-
-/*
- * Wear Leveling EEPROM Emulation
- */
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048                              // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)  // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
diff --git a/keyboards/binepad/bn009/r2/info.json b/keyboards/binepad/bn009/r2/info.json
index c011fe0e32..870608b5c8 100644
--- a/keyboards/binepad/bn009/r2/info.json
+++ b/keyboards/binepad/bn009/r2/info.json
@@ -6,6 +6,11 @@
         "cols": ["A1", "A2", "A6"],
         "rows": ["B6", "B7", "B2"]
     },
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "processor": "STM32F103",
     "usb": {
         "device_version": "2.0.0"
diff --git a/keyboards/binepad/bnr1/v2/config.h b/keyboards/binepad/bnr1/v2/config.h
deleted file mode 100644
index c408f95d38..0000000000
--- a/keyboards/binepad/bnr1/v2/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2022 BINEPAD (@binepad)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h
index 95b2aca688..e837c9745b 100644
--- a/keyboards/chosfox/cf81/config.h
+++ b/keyboards/chosfox/cf81/config.h
@@ -32,7 +32,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json
index 65134dfedf..bbfc2deb31 100644
--- a/keyboards/chosfox/cf81/info.json
+++ b/keyboards/chosfox/cf81/info.json
@@ -12,7 +12,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "processor": "WB32FQ95",
diff --git a/keyboards/gmmk/gmmk2/p96/ansi/info.json b/keyboards/gmmk/gmmk2/p96/ansi/info.json
index b80e334e0a..e4eaddbfe8 100644
--- a/keyboards/gmmk/gmmk2/p96/ansi/info.json
+++ b/keyboards/gmmk/gmmk2/p96/ansi/info.json
@@ -22,7 +22,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "processor": "WB32F3G71",
diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h
index 4200bae922..9a5a2bf8a4 100644
--- a/keyboards/gmmk/gmmk2/p96/config.h
+++ b/keyboards/gmmk/gmmk2/p96/config.h
@@ -25,7 +25,6 @@
 
 /* External spi flash */
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE 2048
 
 /* SPI Config for LED Driver */
 #define SPI_DRIVER SPIDQ
diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json
index ee59bfd4ff..42b40231b6 100644
--- a/keyboards/gmmk/gmmk2/p96/iso/info.json
+++ b/keyboards/gmmk/gmmk2/p96/iso/info.json
@@ -22,7 +22,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "processor": "WB32F3G71",
diff --git a/keyboards/gmmk/numpad/config.h b/keyboards/gmmk/numpad/config.h
index 9096ce1d56..24a7a24a3f 100644
--- a/keyboards/gmmk/numpad/config.h
+++ b/keyboards/gmmk/numpad/config.h
@@ -37,7 +37,6 @@
 #define RGB_MATRIX_LED_COUNT 31
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B6
-#define WEAR_LEVELING_BACKING_SIZE 2048
 
 #define ENABLE_RGB_MATRIX_ALPHAS_MODS
 #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
diff --git a/keyboards/gmmk/numpad/info.json b/keyboards/gmmk/numpad/info.json
index 406f22603a..83f7d840dc 100644
--- a/keyboards/gmmk/numpad/info.json
+++ b/keyboards/gmmk/numpad/info.json
@@ -11,7 +11,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "encoder": {
diff --git a/keyboards/gmmk/pro/rev2/ansi/info.json b/keyboards/gmmk/pro/rev2/ansi/info.json
index 968a1952ee..cd1fd31bf0 100644
--- a/keyboards/gmmk/pro/rev2/ansi/info.json
+++ b/keyboards/gmmk/pro/rev2/ansi/info.json
@@ -19,7 +19,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "encoder": {
diff --git a/keyboards/gmmk/pro/rev2/config.h b/keyboards/gmmk/pro/rev2/config.h
index fa409ba026..c393e04e45 100644
--- a/keyboards/gmmk/pro/rev2/config.h
+++ b/keyboards/gmmk/pro/rev2/config.h
@@ -19,7 +19,6 @@
 
 /* External spi flash */
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B12
-#define WEAR_LEVELING_BACKING_SIZE 2048
 
 /* SPI Config for LED Driver */
 #define SPI_DRIVER SPIDQ
diff --git a/keyboards/gmmk/pro/rev2/iso/info.json b/keyboards/gmmk/pro/rev2/iso/info.json
index 54ebc2d2f7..6233356616 100644
--- a/keyboards/gmmk/pro/rev2/iso/info.json
+++ b/keyboards/gmmk/pro/rev2/iso/info.json
@@ -19,7 +19,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "encoder": {
diff --git a/keyboards/hfdkb/ac001/config.h b/keyboards/hfdkb/ac001/config.h
index 6c0c2a2cf6..7d38c7392c 100644
--- a/keyboards/hfdkb/ac001/config.h
+++ b/keyboards/hfdkb/ac001/config.h
@@ -32,7 +32,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
 
diff --git a/keyboards/hfdkb/ac001/info.json b/keyboards/hfdkb/ac001/info.json
index 36583e2e58..3f896d5988 100644
--- a/keyboards/hfdkb/ac001/info.json
+++ b/keyboards/hfdkb/ac001/info.json
@@ -20,7 +20,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "ws2812": {
diff --git a/keyboards/horrortroll/handwired_k552/config.h b/keyboards/horrortroll/handwired_k552/config.h
index bec0ac055b..11461a9418 100644
--- a/keyboards/horrortroll/handwired_k552/config.h
+++ b/keyboards/horrortroll/handwired_k552/config.h
@@ -30,10 +30,6 @@
 #define EXTERNAL_FLASH_BLOCK_SIZE 4096
 #define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size
 
-// Wear-leveling driver configuration
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
 #ifdef OLED_ENABLE
     /* Mapping I2C2 for OLED */
     #define I2C1_SCL_PIN B10
diff --git a/keyboards/horrortroll/handwired_k552/info.json b/keyboards/horrortroll/handwired_k552/info.json
index 2c97ce1306..b064df38c2 100644
--- a/keyboards/horrortroll/handwired_k552/info.json
+++ b/keyboards/horrortroll/handwired_k552/info.json
@@ -23,7 +23,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 2048
         }
     },
     "community_layouts": ["tkl_ansi"],
diff --git a/keyboards/ibm/model_m/yugo_m/config.h b/keyboards/ibm/model_m/yugo_m/config.h
index 2b7fc4d157..0e6881ded3 100644
--- a/keyboards/ibm/model_m/yugo_m/config.h
+++ b/keyboards/ibm/model_m/yugo_m/config.h
@@ -36,7 +36,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 //#define NO_ACTION_LAYER
 //#define NO_ACTION_TAPPING
 //#define NO_ACTION_ONESHOT
-
-/* redefine available (emulated) EEPROM as 4 kB rather than the default 2 kB to let VIA use more of the on-chip Flash of the STM32F303 to store 4 layers (since 4 layers * 8 rows * 16 columns * 2 = 1024 bytes but the default max available is 1023 bytes due to ATMEGA32U4 etc. only having 1 kB of EEPROM) */
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/ibm/model_m/yugo_m/info.json b/keyboards/ibm/model_m/yugo_m/info.json
index 6e3a0b39c6..f4d9cc1d94 100644
--- a/keyboards/ibm/model_m/yugo_m/info.json
+++ b/keyboards/ibm/model_m/yugo_m/info.json
@@ -13,6 +13,11 @@
         "rows": ["B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"]
     },
     "diode_direction": "ROW2COL",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "processor": "STM32F303",
     "bootloader": "stm32-dfu",
     "board": "QMK_PROTON_C",
diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h
index e1b6702bd8..ed1f3cf160 100644
--- a/keyboards/inland/kb83/config.h
+++ b/keyboards/inland/kb83/config.h
@@ -36,7 +36,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json
index 33545515ad..cd538ef4ee 100644
--- a/keyboards/inland/kb83/info.json
+++ b/keyboards/inland/kb83/info.json
@@ -21,7 +21,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "encoder": {
diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h
index 7004b38e63..db9aea328f 100644
--- a/keyboards/inland/mk47/config.h
+++ b/keyboards/inland/mk47/config.h
@@ -23,7 +23,6 @@
 #define SPI_MISO_PIN B4
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 1
diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json
index 2ed18eac3b..7d94365724 100644
--- a/keyboards/inland/mk47/info.json
+++ b/keyboards/inland/mk47/info.json
@@ -29,7 +29,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 4096
         }
     },
     "rgb_matrix": {
diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h
index 4cfcaebcde..e74e7939c4 100644
--- a/keyboards/mechlovin/hex6c/config.h
+++ b/keyboards/mechlovin/hex6c/config.h
@@ -18,6 +18,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #pragma once
 
 #define BACKLIGHT_PWM_DRIVER PWMD3
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json
index dfeb91e0ba..483566e7f4 100644
--- a/keyboards/mechlovin/hex6c/info.json
+++ b/keyboards/mechlovin/hex6c/info.json
@@ -13,6 +13,11 @@
         "rows": ["A10", "B13", "B12", "B11", "C14", "C15"]
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "encoder": {
         "rotary": [
             {"pin_a": "A15", "pin_b": "A2"}
diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h
deleted file mode 100644
index c6d7d037ec..0000000000
--- a/keyboards/mode/m75h/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/mode/m75h/info.json b/keyboards/mode/m75h/info.json
index f57aac383e..8314dbf99d 100644
--- a/keyboards/mode/m75h/info.json
+++ b/keyboards/mode/m75h/info.json
@@ -13,6 +13,11 @@
         "rows": ["C5", "B0", "B14", "B15", "A8", "C9", "A15"]
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "processor": "STM32F401",
     "bootloader": "stm32-dfu",
     "layout_aliases": {
diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h
index 7fdb18d26a..4d3a7d5ca4 100644
--- a/keyboards/mode/m75s/config.h
+++ b/keyboards/mode/m75s/config.h
@@ -20,6 +20,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define BACKLIGHT_DEFAULT_LEVEL 20
 #define BACKLIGHT_PWM_DRIVER PWMD3
 #define BACKLIGHT_PWM_CHANNEL 1
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/mode/m75s/info.json b/keyboards/mode/m75s/info.json
index bf60aebd56..df4d1ab451 100644
--- a/keyboards/mode/m75s/info.json
+++ b/keyboards/mode/m75s/info.json
@@ -13,6 +13,11 @@
         "rows": ["C5", "B0", "B14", "B15", "C7", "C9", "A15"]
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "backlight": {
         "pin": "C6",
         "levels": 20,
diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h
index f5466ab09b..162001fca6 100644
--- a/keyboards/monsgeek/m1/config.h
+++ b/keyboards/monsgeek/m1/config.h
@@ -34,7 +34,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json
index fe979b7c31..a008b22195 100644
--- a/keyboards/monsgeek/m1/info.json
+++ b/keyboards/monsgeek/m1/info.json
@@ -29,7 +29,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "encoder": {
diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h
index db65cef760..a92c4975eb 100644
--- a/keyboards/monsgeek/m5/config.h
+++ b/keyboards/monsgeek/m5/config.h
@@ -35,7 +35,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json
index ecc6b309ae..1e9ec8618a 100644
--- a/keyboards/monsgeek/m5/info.json
+++ b/keyboards/monsgeek/m5/info.json
@@ -28,7 +28,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "indicators": {
diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h
index abed72f54e..c6f7d55e9d 100644
--- a/keyboards/monsgeek/m6/config.h
+++ b/keyboards/monsgeek/m6/config.h
@@ -32,7 +32,6 @@
 #define SPI_MOSI_PAL_MODE 5
 
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
 
 /* I2C Config for LED Driver */
 #define IS31FL3733_DRIVER_COUNT 2
diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json
index 2aa297570c..7751ef13d6 100644
--- a/keyboards/monsgeek/m6/info.json
+++ b/keyboards/monsgeek/m6/info.json
@@ -28,7 +28,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 8192
         }
     },
     "rgb_matrix": {
diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h
index 64e4595e1b..4d1dc100d8 100644
--- a/keyboards/projectd/65/projectd_65_ansi/config.h
+++ b/keyboards/projectd/65/projectd_65_ansi/config.h
@@ -25,7 +25,6 @@
 
 /* External spi flash */
 #define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
 
 /* SPI Config for LED Driver */
 #define SPI_DRIVER SPIDQ
diff --git a/keyboards/projectd/65/projectd_65_ansi/info.json b/keyboards/projectd/65/projectd_65_ansi/info.json
index c385f00ed1..861e3792db 100644
--- a/keyboards/projectd/65/projectd_65_ansi/info.json
+++ b/keyboards/projectd/65/projectd_65_ansi/info.json
@@ -13,7 +13,8 @@
     "eeprom": {
         "driver": "wear_leveling",
         "wear_leveling": {
-            "driver": "spi_flash"
+            "driver": "spi_flash",
+            "backing_size": 4096
         }
     },
     "features": {
diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h
index fd2e366614..baf495b534 100644
--- a/keyboards/rgbkb/mun/config.h
+++ b/keyboards/rgbkb/mun/config.h
@@ -119,6 +119,3 @@
 
 #define TOUCH_UPDATE_INTERVAL 33
 #define OLED_UPDATE_INTERVAL 33
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/rgbkb/mun/rev1/info.json b/keyboards/rgbkb/mun/rev1/info.json
index 5d380de5c7..91b60e76c3 100644
--- a/keyboards/rgbkb/mun/rev1/info.json
+++ b/keyboards/rgbkb/mun/rev1/info.json
@@ -37,6 +37,11 @@
         "io_delay": 5
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "encoder": {
         "rotary": [
             {"pin_a": "B8", "pin_b": "A14"},
diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h
index 3a0b61bfd5..575e5bcd95 100644
--- a/keyboards/rgbkb/sol3/config.h
+++ b/keyboards/rgbkb/sol3/config.h
@@ -125,6 +125,3 @@
 #define AUDIO_CLICKY
 #define AUDIO_DAC_SAMPLE_WAVEFORM_SQUARE
 #define AUDIO_DAC_OFF_VALUE 0
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json
index b80161995f..7d3db933a8 100644
--- a/keyboards/rgbkb/sol3/rev1/info.json
+++ b/keyboards/rgbkb/sol3/rev1/info.json
@@ -37,6 +37,11 @@
         "io_delay": 5
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "encoder": {
         "rotary": [
             {"pin_a": "A1", "pin_b": "A2"},
diff --git a/keyboards/xelus/kangaroo/rev2/config.h b/keyboards/xelus/kangaroo/rev2/config.h
index 790db9b30a..dfe8035b10 100644
--- a/keyboards/xelus/kangaroo/rev2/config.h
+++ b/keyboards/xelus/kangaroo/rev2/config.h
@@ -20,6 +20,3 @@
 #define LOCKING_SUPPORT_ENABLE
 /* Locking resynchronize hack */
 #define LOCKING_RESYNC_ENABLE
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2
diff --git a/keyboards/xelus/kangaroo/rev2/info.json b/keyboards/xelus/kangaroo/rev2/info.json
index 196f11860b..9e639df034 100644
--- a/keyboards/xelus/kangaroo/rev2/info.json
+++ b/keyboards/xelus/kangaroo/rev2/info.json
@@ -8,6 +8,11 @@
         "rows": ["A9", "A8", "B15", "B14", "B13", "B12", "A4", "A5", "A6", "A7", "B0", "B1"]
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "processor": "STM32L412",
     "bootloader": "stm32-dfu"
 }
diff --git a/keyboards/xelus/rs60/rev2_1/config.h b/keyboards/xelus/rs60/rev2_1/config.h
index 1c5fe4a336..430a5a47f7 100644
--- a/keyboards/xelus/rs60/rev2_1/config.h
+++ b/keyboards/xelus/rs60/rev2_1/config.h
@@ -21,6 +21,3 @@
 // Locking resynchronize hack
 #define LOCKING_RESYNC_ENABLE
 
-// Emulated EEPROM
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2
diff --git a/keyboards/xelus/rs60/rev2_1/info.json b/keyboards/xelus/rs60/rev2_1/info.json
index 118a671547..fe87561e61 100644
--- a/keyboards/xelus/rs60/rev2_1/info.json
+++ b/keyboards/xelus/rs60/rev2_1/info.json
@@ -8,6 +8,11 @@
         "rows": ["B15", "B14", "B12", "B1", "B0"]
     },
     "diode_direction": "COL2ROW",
+    "eeprom": {
+        "wear_leveling": {
+            "backing_size": 4096
+        }
+    },
     "indicators": {
         "caps_lock": "A1",
         "on_state": 0