commit: 4a64d47f1268c037688b53cbf5bbecc17c5fec96
parent 50c5403612018ae940af311078dfb760f9b0c2ce
Author: Joel Challis <git@zvecr.com>
Date: Wed, 14 Feb 2024 08:54:24 +0000
Migrate WEAR_LEVELING_* to info.json (#23077)
Diffstat:
52 files changed, 126 insertions(+), 117 deletions(-)
diff --git 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 <http://www.gnu.org/licenses/>.
#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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -26,6 +26,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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
@@ -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
@@ -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 <http://www.gnu.org/licenses/>.
-*/
-
-#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
@@ -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
@@ -27,6 +27,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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
@@ -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
@@ -29,6 +29,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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
@@ -11,6 +11,11 @@
"build": {
"lto": true
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"features": {
"audio": false,
"backlight": true,