diff --git a/keyboards/dark/magnum_ergo_1/config.h b/keyboards/dark/magnum_ergo_1/config.h
index 207bc978e87..6b153f69df6 100644
--- a/keyboards/dark/magnum_ergo_1/config.h
+++ b/keyboards/dark/magnum_ergo_1/config.h
@@ -30,6 +30,3 @@ along with this program. If not, see .
#define LED_INDICATOR_3 B0
#define LED_INDICATOR_4 A5
#define LED_INDICATOR_5 C15
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/dark/magnum_ergo_1/info.json b/keyboards/dark/magnum_ergo_1/info.json
index 6ed39084797..cdabceec7f9 100644
--- a/keyboards/dark/magnum_ergo_1/info.json
+++ b/keyboards/dark/magnum_ergo_1/info.json
@@ -11,6 +11,11 @@
"build": {
"lto": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"audio": false,
"backlight": true,
diff --git a/keyboards/darkproject/kd83a_bfg_edition/config.h b/keyboards/darkproject/kd83a_bfg_edition/config.h
index 4aab5a8bb75..e8bb8da2576 100644
--- a/keyboards/darkproject/kd83a_bfg_edition/config.h
+++ b/keyboards/darkproject/kd83a_bfg_edition/config.h
@@ -23,7 +23,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
diff --git a/keyboards/darkproject/kd83a_bfg_edition/info.json b/keyboards/darkproject/kd83a_bfg_edition/info.json
index 3e69d1e0eb5..56c45a222f3 100644
--- a/keyboards/darkproject/kd83a_bfg_edition/info.json
+++ b/keyboards/darkproject/kd83a_bfg_edition/info.json
@@ -177,7 +177,11 @@
"vid": "0x342D"
},
"eeprom": {
- "driver": "wear_leveling"
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/darkproject/kd83a_bfg_edition/rules.mk b/keyboards/darkproject/kd83a_bfg_edition/rules.mk
index 07eb511a199..6e7633bfe01 100644
--- a/keyboards/darkproject/kd83a_bfg_edition/rules.mk
+++ b/keyboards/darkproject/kd83a_bfg_edition/rules.mk
@@ -1 +1 @@
-WEAR_LEVELING_DRIVER = spi_flash
\ No newline at end of file
+# This file intentionally left blank
diff --git a/keyboards/keychron/c1_pro/config.h b/keyboards/keychron/c1_pro/config.h
index 78415190b72..f553399f4b2 100644
--- a/keyboards/keychron/c1_pro/config.h
+++ b/keyboards/keychron/c1_pro/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
diff --git a/keyboards/keychron/c1_pro/info.json b/keyboards/keychron/c1_pro/info.json
index 080392ea489..e40c2b99604 100644
--- a/keyboards/keychron/c1_pro/info.json
+++ b/keyboards/keychron/c1_pro/info.json
@@ -8,6 +8,11 @@
"usb": {
"vid": "0x3434"
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
diff --git a/keyboards/keychron/c2_pro/config.h b/keyboards/keychron/c2_pro/config.h
index 7422e29f6f0..1ddb0c40062 100644
--- a/keyboards/keychron/c2_pro/config.h
+++ b/keyboards/keychron/c2_pro/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json
index 736a2e86a16..4b11fc213a4 100644
--- a/keyboards/keychron/c2_pro/info.json
+++ b/keyboards/keychron/c2_pro/info.json
@@ -8,6 +8,11 @@
"usb": {
"vid": "0x3434"
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h
index 94209ba7632..4a39a5f7620 100644
--- a/keyboards/keychron/q10/config.h
+++ b/keyboards/keychron/q10/config.h
@@ -43,7 +43,3 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE \
{ 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/q10/info.json b/keyboards/keychron/q10/info.json
index ab790399e9c..636ef2d9a23 100644
--- a/keyboards/keychron/q10/info.json
+++ b/keyboards/keychron/q10/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 5] ]
},
diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h
index a00e550d090..b1b40c98ab9 100755
--- a/keyboards/keychron/q11/config.h
+++ b/keyboards/keychron/q11/config.h
@@ -29,10 +29,6 @@
#define SNLED27351_CURRENT_TUNE \
{ 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF } // 300mA
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Split Keyboard specific options. */
#define SERIAL_USART_TX_PIN A9 // USART TX pin
diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json
index bd3bbd19992..db70d2b7b68 100755
--- a/keyboards/keychron/q11/info.json
+++ b/keyboards/keychron/q11/info.json
@@ -14,6 +14,11 @@
"dip_switch": {
"pins": ["A8"]
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h
index b0001e2957a..91e5fcce1d4 100644
--- a/keyboards/keychron/q12/config.h
+++ b/keyboards/keychron/q12/config.h
@@ -38,5 +38,3 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55 }
-
-#define SCAN_COUNT_MAX 100
diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h
index 94341970b3d..326e60e3c0b 100644
--- a/keyboards/keychron/q1v2/config.h
+++ b/keyboards/keychron/q1v2/config.h
@@ -27,10 +27,6 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set LED driver current */
#define SNLED27351_CURRENT_TUNE \
diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json
index 33b9c094b8b..ed718006e36 100644
--- a/keyboards/keychron/q1v2/info.json
+++ b/keyboards/keychron/q1v2/info.json
@@ -18,6 +18,11 @@
"rgb_matrix": true,
"dip_switch": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
},
diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h
index b77066760d6..a9d2a95b97d 100644
--- a/keyboards/keychron/q6/config.h
+++ b/keyboards/keychron/q6/config.h
@@ -29,7 +29,3 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 }
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/q6/info.json b/keyboards/keychron/q6/info.json
index 35faaa62f95..94a45db562d 100644
--- a/keyboards/keychron/q6/info.json
+++ b/keyboards/keychron/q6/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
},
diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h
index 61616415eeb..5e8e40cc5a1 100644
--- a/keyboards/keychron/q60/config.h
+++ b/keyboards/keychron/q60/config.h
@@ -30,7 +30,3 @@
{ 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/q60/info.json b/keyboards/keychron/q60/info.json
index d2b74589980..553146eb39e 100644
--- a/keyboards/keychron/q60/info.json
+++ b/keyboards/keychron/q60/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [4, 4] ]
},
diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h
index 47cadce650d..c451568e769 100644
--- a/keyboards/keychron/q65/config.h
+++ b/keyboards/keychron/q65/config.h
@@ -41,7 +41,3 @@
{ 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/q65/info.json b/keyboards/keychron/q65/info.json
index d2b74589980..553146eb39e 100644
--- a/keyboards/keychron/q65/info.json
+++ b/keyboards/keychron/q65/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [4, 4] ]
},
diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h
index c927c4854fa..340d5654901 100755
--- a/keyboards/keychron/q9_plus/config.h
+++ b/keyboards/keychron/q9_plus/config.h
@@ -30,9 +30,5 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 }
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Old default behavior of mod-taps */
#define HOLD_ON_OTHER_KEY_PRESS
diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json
index 0da6a47f277..927f5094a6b 100755
--- a/keyboards/keychron/q9_plus/info.json
+++ b/keyboards/keychron/q9_plus/info.json
@@ -19,6 +19,11 @@
"nkro": true,
"rgb_matrix": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [3, 4] ]
},
diff --git a/keyboards/keychron/s1/config.h b/keyboards/keychron/s1/config.h
index adea1822e57..014faffb92d 100644
--- a/keyboards/keychron/s1/config.h
+++ b/keyboards/keychron/s1/config.h
@@ -16,10 +16,6 @@
#pragma once
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
#define I2C1_TIMINGR_SCLDEL 3U
diff --git a/keyboards/keychron/s1/info.json b/keyboards/keychron/s1/info.json
index 7019c8755b1..c490aeeb28f 100644
--- a/keyboards/keychron/s1/info.json
+++ b/keyboards/keychron/s1/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
}
diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h
index 9774e173416..80e01e02912 100644
--- a/keyboards/keychron/v1/config.h
+++ b/keyboards/keychron/v1/config.h
@@ -37,7 +37,3 @@
#define I2C1_TIMINGR_SCLL 51U
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v1/info.json b/keyboards/keychron/v1/info.json
index 35faaa62f95..94a45db562d 100644
--- a/keyboards/keychron/v1/info.json
+++ b/keyboards/keychron/v1/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
},
diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h
index 0ee46864282..c084c4d47d7 100644
--- a/keyboards/keychron/v10/config.h
+++ b/keyboards/keychron/v10/config.h
@@ -43,7 +43,3 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define SNLED27351_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v10/info.json b/keyboards/keychron/v10/info.json
index ab790399e9c..636ef2d9a23 100644
--- a/keyboards/keychron/v10/info.json
+++ b/keyboards/keychron/v10/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 5] ]
},
diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h
index c2afb532d3f..1cbc2e49af7 100644
--- a/keyboards/keychron/v2/config.h
+++ b/keyboards/keychron/v2/config.h
@@ -33,7 +33,3 @@
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v2/info.json b/keyboards/keychron/v2/info.json
index d2b74589980..553146eb39e 100644
--- a/keyboards/keychron/v2/info.json
+++ b/keyboards/keychron/v2/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [4, 4] ]
},
diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h
index 65e4ca9429a..bfefedfac7f 100644
--- a/keyboards/keychron/v3/config.h
+++ b/keyboards/keychron/v3/config.h
@@ -31,7 +31,3 @@
#define I2C1_TIMINGR_SCLL 51U
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v3/info.json b/keyboards/keychron/v3/info.json
index 35faaa62f95..94a45db562d 100644
--- a/keyboards/keychron/v3/info.json
+++ b/keyboards/keychron/v3/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
},
diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h
index 3d7f9564194..04a5779dd90 100644
--- a/keyboards/keychron/v4/config.h
+++ b/keyboards/keychron/v4/config.h
@@ -30,7 +30,3 @@
{ 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v4/info.json b/keyboards/keychron/v4/info.json
index d2b74589980..553146eb39e 100644
--- a/keyboards/keychron/v4/info.json
+++ b/keyboards/keychron/v4/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [4, 4] ]
},
diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h
index 694fdb85087..622c9efe6cd 100644
--- a/keyboards/keychron/v5/config.h
+++ b/keyboards/keychron/v5/config.h
@@ -38,7 +38,3 @@
#define SNLED27351_CURRENT_TUNE \
{ 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 }
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v5/info.json b/keyboards/keychron/v5/info.json
index 35faaa62f95..94a45db562d 100644
--- a/keyboards/keychron/v5/info.json
+++ b/keyboards/keychron/v5/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
},
diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h
index 67a5be9d6a6..eabfbf2640c 100644
--- a/keyboards/keychron/v6/config.h
+++ b/keyboards/keychron/v6/config.h
@@ -32,9 +32,3 @@
/* Limit the maximum brigtness current of colour white to 500mA */
#define SNLED27351_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 }
-
-#define SCAN_COUNT_MAX 100
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v6/info.json b/keyboards/keychron/v6/info.json
index 35faaa62f95..94a45db562d 100644
--- a/keyboards/keychron/v6/info.json
+++ b/keyboards/keychron/v6/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [5, 4] ]
},
diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h
index 54c93e5e77e..849535d67ff 100644
--- a/keyboards/keychron/v7/config.h
+++ b/keyboards/keychron/v7/config.h
@@ -31,7 +31,3 @@
#define SNLED27351_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v7/info.json b/keyboards/keychron/v7/info.json
index d2b74589980..553146eb39e 100644
--- a/keyboards/keychron/v7/info.json
+++ b/keyboards/keychron/v7/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [4, 4] ]
},
diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h
index 87f3b0043aa..54933f656fc 100644
--- a/keyboards/keychron/v8/config.h
+++ b/keyboards/keychron/v8/config.h
@@ -34,7 +34,3 @@
#define SNLED27351_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 }
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/keychron/v8/info.json b/keyboards/keychron/v8/info.json
index d2b74589980..553146eb39e 100644
--- a/keyboards/keychron/v8/info.json
+++ b/keyboards/keychron/v8/info.json
@@ -1,4 +1,9 @@
{
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"dip_switch": {
"matrix_grid": [ [4, 4] ]
},
diff --git a/keyboards/mechlovin/olly/jf/rev2/config.h b/keyboards/mechlovin/olly/jf/rev2/config.h
index e1389b1e9ac..9f70d27fba7 100644
--- a/keyboards/mechlovin/olly/jf/rev2/config.h
+++ b/keyboards/mechlovin/olly/jf/rev2/config.h
@@ -26,6 +26,3 @@ along with this program. If not, see .
#define I2C1_CLOCK_SPEED 400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/mechlovin/olly/jf/rev2/info.json b/keyboards/mechlovin/olly/jf/rev2/info.json
index da86fbb075e..600bf8a3af3 100644
--- a/keyboards/mechlovin/olly/jf/rev2/info.json
+++ b/keyboards/mechlovin/olly/jf/rev2/info.json
@@ -1,6 +1,11 @@
{
"keyboard_name": "Olly JF Rev2",
"bootloader": "stm32duino",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"command": true,
"console": true,
diff --git a/keyboards/mechlovin/zed1800/config.h b/keyboards/mechlovin/zed1800/config.h
deleted file mode 100644
index 9bfc776bcb4..00000000000
--- a/keyboards/mechlovin/zed1800/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2022 Mechlovin'
-
-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 .
-*/
-
-#pragma once
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/mechlovin/zed1800/info.json b/keyboards/mechlovin/zed1800/info.json
index a3d862fa8c1..41179a6ef14 100644
--- a/keyboards/mechlovin/zed1800/info.json
+++ b/keyboards/mechlovin/zed1800/info.json
@@ -12,6 +12,11 @@
},
"processor": "STM32F103",
"bootloader": "stm32duino",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": true,
diff --git a/keyboards/smithrune/magnus/m75h/config.h b/keyboards/smithrune/magnus/m75h/config.h
index 310d7b19817..e72ba069692 100644
--- a/keyboards/smithrune/magnus/m75h/config.h
+++ b/keyboards/smithrune/magnus/m75h/config.h
@@ -27,6 +27,3 @@ along with this program. If not, see .
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/smithrune/magnus/m75h/info.json b/keyboards/smithrune/magnus/m75h/info.json
index 9b120a186e6..a4f2ce57682 100644
--- a/keyboards/smithrune/magnus/m75h/info.json
+++ b/keyboards/smithrune/magnus/m75h/info.json
@@ -11,6 +11,11 @@
"build": {
"lto": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"audio": false,
"backlight": false,
diff --git a/keyboards/smithrune/magnus/m75s/config.h b/keyboards/smithrune/magnus/m75s/config.h
index 61f5f8e0a5f..1e8874caa4e 100644
--- a/keyboards/smithrune/magnus/m75s/config.h
+++ b/keyboards/smithrune/magnus/m75s/config.h
@@ -29,6 +29,3 @@ along with this program. If not, see .
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/smithrune/magnus/m75s/info.json b/keyboards/smithrune/magnus/m75s/info.json
index 56f7a06b04f..5b834631f78 100644
--- a/keyboards/smithrune/magnus/m75s/info.json
+++ b/keyboards/smithrune/magnus/m75s/info.json
@@ -11,6 +11,11 @@
"build": {
"lto": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"audio": false,
"backlight": true,