summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/eeprom_driver.md8
-rw-r--r--drivers/eeprom/eeprom_spi.h12
-rw-r--r--keyboards/custommk/evo70_r2/config.h1
-rw-r--r--keyboards/rgbkb/mun/keymaps/default/config.h2
-rw-r--r--keyboards/rgbkb/mun/keymaps/via/config.h2
-rw-r--r--keyboards/rgbkb/sol3/keymaps/default/config.h3
-rw-r--r--keyboards/rgbkb/sol3/keymaps/via/config.h3
-rw-r--r--keyboards/tau4/config.h9
-rw-r--r--keyboards/tzarc/djinn/rev1/config.h3
-rw-r--r--keyboards/tzarc/djinn/rev2/config.h3
-rw-r--r--keyboards/tzarc/ghoul/config.h3
-rw-r--r--keyboards/vinhcatba/uncertainty/config.h6
-rw-r--r--keyboards/xelus/kangaroo/rev1/config.h3
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/config.h3
-rw-r--r--keyboards/xelus/rs108/config.h9
-rw-r--r--keyboards/xelus/rs60/rev2_0/config.h9
-rw-r--r--keyboards/xelus/valor/rev2/config.h3
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/config.h6
-rw-r--r--keyboards/xelus/xs108/config.h3
-rw-r--r--keyboards/xelus/xs60/hotswap/config.h3
-rw-r--r--platforms/chibios/boards/BONSAI_C4/configs/config.h4
21 files changed, 28 insertions, 70 deletions
diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md
index 34b6f51cbe..c77d18c68d 100644
--- a/docs/eeprom_driver.md
+++ b/docs/eeprom_driver.md
@@ -66,6 +66,14 @@ Currently QMK supports 25xx-series chips over SPI. As such, requires a working s
66`#define EXTERNAL_EEPROM_PAGE_SIZE` | `32` | Page size of the EEPROM in bytes, as specified in the datasheet 66`#define EXTERNAL_EEPROM_PAGE_SIZE` | `32` | Page size of the EEPROM in bytes, as specified in the datasheet
67`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | `2` | The number of bytes to transmit for the memory location within the EEPROM 67`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | `2` | The number of bytes to transmit for the memory location within the EEPROM
68 68
69Default values and extended descriptions can be found in `drivers/eeprom/eeprom_spi.h`.
70
71Alternatively, there are pre-defined hardware configurations for available chips/modules:
72
73Module | Equivalent `#define` | Source
74-----------------|---------------------------------|------------------------------------------
75MB85RS64V FRAM | `define EEPROM_SPI_MB85RS64V` | <https://www.adafruit.com/product/1897>
76
69!> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero. 77!> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero.
70 78
71## Transient Driver configuration :id=transient-eeprom-driver-configuration 79## Transient Driver configuration :id=transient-eeprom-driver-configuration
diff --git a/drivers/eeprom/eeprom_spi.h b/drivers/eeprom/eeprom_spi.h
index 282c603565..6a21d5516b 100644
--- a/drivers/eeprom/eeprom_spi.h
+++ b/drivers/eeprom/eeprom_spi.h
@@ -17,6 +17,18 @@
17#pragma once 17#pragma once
18 18
19/* 19/*
20 Default device configurations:
21
22 For the Adafruit SPI Non-Volatile FRAM Breakout: https://www.adafruit.com/product/1897
23 #define EEPROM_SPI_MB85RS64V
24*/
25#if defined(EEPROM_SPI_MB85RS64V)
26# define EXTERNAL_EEPROM_BYTE_COUNT 8192
27# define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer
28# define EXTERNAL_EEPROM_ADDRESS_SIZE 2
29#endif
30
31/*
20 The slave select pin of the EEPROM. 32 The slave select pin of the EEPROM.
21 This needs to be a normal GPIO pin_t value, such as A7. 33 This needs to be a normal GPIO pin_t value, such as A7.
22*/ 34*/
diff --git a/keyboards/custommk/evo70_r2/config.h b/keyboards/custommk/evo70_r2/config.h
index 25ab789d75..62606cf1ee 100644
--- a/keyboards/custommk/evo70_r2/config.h
+++ b/keyboards/custommk/evo70_r2/config.h
@@ -26,6 +26,7 @@
26#define MATRIX_ROW_PINS { A8, A1, A2, B1, A7 } 26#define MATRIX_ROW_PINS { A8, A1, A2, B1, A7 }
27 27
28// FRAM configuration 28// FRAM configuration
29#define EEPROM_SPI_MB85RS64V
29#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A0 30#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A0
30#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz 31#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz
31 32
diff --git a/keyboards/rgbkb/mun/keymaps/default/config.h b/keyboards/rgbkb/mun/keymaps/default/config.h
index 9fbbfc5901..88bdc06dee 100644
--- a/keyboards/rgbkb/mun/keymaps/default/config.h
+++ b/keyboards/rgbkb/mun/keymaps/default/config.h
@@ -19,5 +19,3 @@
19// 20m timeout (20m * 60s * 1000mil) 19// 20m timeout (20m * 60s * 1000mil)
20// #define RGB_MATRIX_TIMEOUT 1200000 20// #define RGB_MATRIX_TIMEOUT 1200000
21#define RGB_DISABLE_WHEN_USB_SUSPENDED 21#define RGB_DISABLE_WHEN_USB_SUSPENDED
22
23#define STM32_ONBOARD_EEPROM_SIZE 2048
diff --git a/keyboards/rgbkb/mun/keymaps/via/config.h b/keyboards/rgbkb/mun/keymaps/via/config.h
index 002081a1c8..a0f581b50a 100644
--- a/keyboards/rgbkb/mun/keymaps/via/config.h
+++ b/keyboards/rgbkb/mun/keymaps/via/config.h
@@ -24,5 +24,3 @@
24// 224B per layer right now 24// 224B per layer right now
25#define DYNAMIC_KEYMAP_LAYER_COUNT 8 25#define DYNAMIC_KEYMAP_LAYER_COUNT 8
26#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 26#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
27
28#define STM32_ONBOARD_EEPROM_SIZE 2048
diff --git a/keyboards/rgbkb/sol3/keymaps/default/config.h b/keyboards/rgbkb/sol3/keymaps/default/config.h
index 7e46726115..88bdc06dee 100644
--- a/keyboards/rgbkb/sol3/keymaps/default/config.h
+++ b/keyboards/rgbkb/sol3/keymaps/default/config.h
@@ -19,6 +19,3 @@
19// 20m timeout (20m * 60s * 1000mil) 19// 20m timeout (20m * 60s * 1000mil)
20// #define RGB_MATRIX_TIMEOUT 1200000 20// #define RGB_MATRIX_TIMEOUT 1200000
21#define RGB_DISABLE_WHEN_USB_SUSPENDED 21#define RGB_DISABLE_WHEN_USB_SUSPENDED
22
23#define STM32_ONBOARD_EEPROM_SIZE 2048
24
diff --git a/keyboards/rgbkb/sol3/keymaps/via/config.h b/keyboards/rgbkb/sol3/keymaps/via/config.h
index ff1ff77472..7b7f806261 100644
--- a/keyboards/rgbkb/sol3/keymaps/via/config.h
+++ b/keyboards/rgbkb/sol3/keymaps/via/config.h
@@ -25,6 +25,3 @@
25// 224B per layer right now 25// 224B per layer right now
26#define DYNAMIC_KEYMAP_LAYER_COUNT 8 26#define DYNAMIC_KEYMAP_LAYER_COUNT 8
27#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 27#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
28
29#define STM32_ONBOARD_EEPROM_SIZE 2048
30
diff --git a/keyboards/tau4/config.h b/keyboards/tau4/config.h
index 053f210c07..e36b3b8f2e 100644
--- a/keyboards/tau4/config.h
+++ b/keyboards/tau4/config.h
@@ -17,15 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
17 17
18#pragma once 18#pragma once
19 19
20
21// Buggy, currently disabled
22/* #define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000
23#define EXTERNAL_EEPROM_I2C_ADDRESS(loc) (EXTERNAL_EEPROM_I2C_BASE_ADDRESS | ((((loc) >> 8) & 0x07) << 1))
24#define EXTERNAL_EEPROM_BYTE_COUNT 2048
25#define EXTERNAL_EEPROM_PAGE_SIZE 16
26#define EXTERNAL_EEPROM_ADDRESS_SIZE 1
27#define EXTERNAL_EEPROM_WRITE_TIME 5 */
28
29#define RGBLIGHT_LAYERS_RETAIN_VAL 20#define RGBLIGHT_LAYERS_RETAIN_VAL
30 21
31#define OLED_DISPLAY_WIDTH 128 22#define OLED_DISPLAY_WIDTH 128
diff --git a/keyboards/tzarc/djinn/rev1/config.h b/keyboards/tzarc/djinn/rev1/config.h
index 5dffc00141..cdcabed05c 100644
--- a/keyboards/tzarc/djinn/rev1/config.h
+++ b/keyboards/tzarc/djinn/rev1/config.h
@@ -22,7 +22,6 @@
22#define RGB_CURR_3000mA_OK_PIN C5 22#define RGB_CURR_3000mA_OK_PIN C5
23 23
24// EEPROM configuration 24// EEPROM configuration
25#define EEPROM_SPI_MB85RS64V
25#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5 26#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5
26#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz 27#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz
27#define EXTERNAL_EEPROM_BYTE_COUNT 8192
28#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer size
diff --git a/keyboards/tzarc/djinn/rev2/config.h b/keyboards/tzarc/djinn/rev2/config.h
index 12a6372405..00a893ff65 100644
--- a/keyboards/tzarc/djinn/rev2/config.h
+++ b/keyboards/tzarc/djinn/rev2/config.h
@@ -25,10 +25,9 @@
25#define RGB_CURR_3000mA_OK_PIN C4 25#define RGB_CURR_3000mA_OK_PIN C4
26 26
27// EEPROM configuration 27// EEPROM configuration
28#define EEPROM_SPI_MB85RS64V
28#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5 29#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5
29#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz 30#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz
30#define EXTERNAL_EEPROM_BYTE_COUNT 8192
31#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer size
32 31
33// External flash config 32// External flash config
34#define EXTERNAL_FLASH_SPI_MODE 3 33#define EXTERNAL_FLASH_SPI_MODE 3
diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h
index 932ea8eb50..402f14cd92 100644
--- a/keyboards/tzarc/ghoul/config.h
+++ b/keyboards/tzarc/ghoul/config.h
@@ -8,8 +8,7 @@
8// #define MATRIX_COLS 8 // actually defined in info.json: 8 bits per register 8// #define MATRIX_COLS 8 // actually defined in info.json: 8 bits per register
9 9
10// EEPROM configuration 10// EEPROM configuration
11#define EXTERNAL_EEPROM_BYTE_COUNT 8192 11#define EEPROM_SPI_MB85RS64V
12#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer
13 12
14// RGB configuration 13// RGB configuration
15#define RGB_MATRIX_LED_COUNT 40 14#define RGB_MATRIX_LED_COUNT 40
diff --git a/keyboards/vinhcatba/uncertainty/config.h b/keyboards/vinhcatba/uncertainty/config.h
index 288f1d81a9..5c02b78efe 100644
--- a/keyboards/vinhcatba/uncertainty/config.h
+++ b/keyboards/vinhcatba/uncertainty/config.h
@@ -19,11 +19,7 @@
19#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9 19#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9
20 20
21/* eeprom i2c driver config */ 21/* eeprom i2c driver config */
22#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000 22#define EEPROM_I2C_24LC32A
23#define EXTERNAL_EEPROM_BYTE_COUNT 4096
24#define EXTERNAL_EEPROM_PAGE_SIZE 32
25#define EXTERNAL_EEPROM_WRITE_TIME 10
26//#define EEPROM_I2C_24LC32
27 23
28/* OLED config */ 24/* OLED config */
29#define OLED_UPDATE_INTERVAL 100 25#define OLED_UPDATE_INTERVAL 100
diff --git a/keyboards/xelus/kangaroo/rev1/config.h b/keyboards/xelus/kangaroo/rev1/config.h
index 7f246458f5..c174b67e57 100644
--- a/keyboards/xelus/kangaroo/rev1/config.h
+++ b/keyboards/xelus/kangaroo/rev1/config.h
@@ -35,6 +35,3 @@
35 35
36// I2C EEPROM 36// I2C EEPROM
37#define EEPROM_I2C_CAT24C512 37#define EEPROM_I2C_CAT24C512
38
39// Dynamic EEPROM
40#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 65535
diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h
index baa15eaa49..e51a176c84 100644
--- a/keyboards/xelus/pachi/rgb/rev1/config.h
+++ b/keyboards/xelus/pachi/rgb/rev1/config.h
@@ -36,9 +36,6 @@
36// I2C EEPROM 36// I2C EEPROM
37#define EEPROM_I2C_24LC64 37#define EEPROM_I2C_24LC64
38 38
39// More EEPROM for layers
40#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
41
42// RGB Matrix defines 39// RGB Matrix defines
43#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND 40#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
44 41
diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h
index 9ff25facc8..45f2a54530 100644
--- a/keyboards/xelus/rs108/config.h
+++ b/keyboards/xelus/rs108/config.h
@@ -30,14 +30,7 @@
30#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 30#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
31 31
32// EEPROM config 32// EEPROM config
33// 24LC32 33#define EEPROM_I2C_24LC32A
34#define EXTERNAL_EEPROM_BYTE_COUNT 4096
35#define EXTERNAL_EEPROM_PAGE_SIZE 32
36#define EXTERNAL_EEPROM_ADDRESS_SIZE 2
37#define EXTERNAL_EEPROM_WRITE_TIME 5
38
39// More EEPROM for layers
40#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
41 34
42// Hardware Defines 35// Hardware Defines
43#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 36#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h
index 9ff25facc8..45f2a54530 100644
--- a/keyboards/xelus/rs60/rev2_0/config.h
+++ b/keyboards/xelus/rs60/rev2_0/config.h
@@ -30,14 +30,7 @@
30#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 30#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
31 31
32// EEPROM config 32// EEPROM config
33// 24LC32 33#define EEPROM_I2C_24LC32A
34#define EXTERNAL_EEPROM_BYTE_COUNT 4096
35#define EXTERNAL_EEPROM_PAGE_SIZE 32
36#define EXTERNAL_EEPROM_ADDRESS_SIZE 2
37#define EXTERNAL_EEPROM_WRITE_TIME 5
38
39// More EEPROM for layers
40#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
41 34
42// Hardware Defines 35// Hardware Defines
43#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE 36#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h
index e5acad6f9c..9a0146172d 100644
--- a/keyboards/xelus/valor/rev2/config.h
+++ b/keyboards/xelus/valor/rev2/config.h
@@ -36,9 +36,6 @@
36// I2C EEPROM 36// I2C EEPROM
37#define EEPROM_I2C_24LC64 37#define EEPROM_I2C_24LC64
38 38
39// More EEPROM for layers
40#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
41
42/* RGB Matrix */ 39/* RGB Matrix */
43#define RGB_MATRIX_LED_COUNT 28 40#define RGB_MATRIX_LED_COUNT 28
44#define NOP_FUDGE 0.4 41#define NOP_FUDGE 0.4
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/config.h b/keyboards/xelus/valor_frl_tkl/rev1/config.h
index a03694deaa..af702fcafd 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/config.h
+++ b/keyboards/xelus/valor_frl_tkl/rev1/config.h
@@ -35,10 +35,4 @@
35#define I2C1_TIMINGR_SCLL 9U 35#define I2C1_TIMINGR_SCLL 9U
36 36
37// I2C EEPROM 37// I2C EEPROM
38// 24LC64
39#define EEPROM_I2C_24LC64 38#define EEPROM_I2C_24LC64
40
41// Dynamic EEPROM
42// Something sensible or else VIA may crash
43// Users may enable more if they wish
44#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
diff --git a/keyboards/xelus/xs108/config.h b/keyboards/xelus/xs108/config.h
index 8a6ab123c4..4b3b447c95 100644
--- a/keyboards/xelus/xs108/config.h
+++ b/keyboards/xelus/xs108/config.h
@@ -34,6 +34,3 @@
34 34
35// I2C EEPROM 35// I2C EEPROM
36#define EEPROM_I2C_24LC64 36#define EEPROM_I2C_24LC64
37
38// More EEPROM for layers
39#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
diff --git a/keyboards/xelus/xs60/hotswap/config.h b/keyboards/xelus/xs60/hotswap/config.h
index d1138c735d..56ecd57ec9 100644
--- a/keyboards/xelus/xs60/hotswap/config.h
+++ b/keyboards/xelus/xs60/hotswap/config.h
@@ -34,9 +34,6 @@
34// I2C EEPROM 34// I2C EEPROM
35#define EEPROM_I2C_24LC64 35#define EEPROM_I2C_24LC64
36 36
37// More EEPROM for layers
38#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
39
40// RGBLIGHT 37// RGBLIGHT
41#define RGBLIGHT_LAYERS 38#define RGBLIGHT_LAYERS
42#define WS2812_EXTERNAL_PULLUP 39#define WS2812_EXTERNAL_PULLUP
diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h
index 7539ebed41..193b028bde 100644
--- a/platforms/chibios/boards/BONSAI_C4/configs/config.h
+++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h
@@ -24,11 +24,9 @@
24 24
25// FRAM configuration 25// FRAM configuration
26#ifndef EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN 26#ifndef EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN
27# define EEPROM_SPI_MB85RS64V
27# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN PAL_LINE(GPIOA, 0) 28# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN PAL_LINE(GPIOA, 0)
28# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // 96MHz / 8 = 12MHz; max supported by MB85R64 is 20MHz 29# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // 96MHz / 8 = 12MHz; max supported by MB85R64 is 20MHz
29# define EXTERNAL_EEPROM_BYTE_COUNT 8192
30# define EXTERNAL_EEPROM_PAGE_SIZE 64 // does not matter for FRAM, just sets the RAM buffer size in STM32F chip
31# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
32#endif 30#endif
33 31
34// External flash configuration 32// External flash configuration