From 4f124574f1087ab40c2630adc10e492f895cefdb Mon Sep 17 00:00:00 2001 From: jpe230 Date: Wed, 29 Jun 2022 20:07:43 -0500 Subject: [PATCH] (develop)AP2: Enable support for WL EEPROM Driver (#17506) --- keyboards/annepro2/c15/config.h | 18 ++++++++++++++++++ keyboards/annepro2/c15/rules.mk | 4 ++++ keyboards/annepro2/c18/config.h | 18 ++++++++++++++++++ keyboards/annepro2/c18/rules.mk | 4 ++++ keyboards/annepro2/halconf.h | 4 ++++ keyboards/annepro2/mcuconf.h | 8 ++++++++ 6 files changed, 56 insertions(+) diff --git a/keyboards/annepro2/c15/config.h b/keyboards/annepro2/c15/config.h index ff92aeea8e..2ebb962efb 100644 --- a/keyboards/annepro2/c15/config.h +++ b/keyboards/annepro2/c15/config.h @@ -49,3 +49,21 @@ // Obins stock firmware has something similar to this already enabled, but disabled by default in QMK #define PERMISSIVE_HOLD + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A0 +#define SPI_MOSI_PIN A1 +#define SPI_MISO_PIN A2 + +// Flash configuration +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B6 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 16 +#define EXTERNAL_FLASH_PAGE_SIZE 256 +#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/rules.mk b/keyboards/annepro2/c15/rules.mk index 2c518b6339..302aeecbe6 100644 --- a/keyboards/annepro2/c15/rules.mk +++ b/keyboards/annepro2/c15/rules.mk @@ -26,6 +26,10 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output +# Wear-levelling driver +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + # Custom RGB matrix handling RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = custom diff --git a/keyboards/annepro2/c18/config.h b/keyboards/annepro2/c18/config.h index 82a406a157..5e4978048b 100644 --- a/keyboards/annepro2/c18/config.h +++ b/keyboards/annepro2/c18/config.h @@ -47,3 +47,21 @@ // Obins stock firmware has something similar to this already enabled, but disabled by default in QMK #define PERMISSIVE_HOLD + +// SPI configuration +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A0 +#define SPI_MOSI_PIN A1 +#define SPI_MISO_PIN A2 + +// Flash configuration +#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN A3 +#define EXTERNAL_FLASH_SPI_CLOCK_DIVISOR 16 +#define EXTERNAL_FLASH_PAGE_SIZE 256 +#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/rules.mk b/keyboards/annepro2/c18/rules.mk index 60c2e08648..b1c7208f8b 100644 --- a/keyboards/annepro2/c18/rules.mk +++ b/keyboards/annepro2/c18/rules.mk @@ -26,6 +26,10 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output +# Wear-levelling driver +EEPROM_DRIVER = wear_leveling +WEAR_LEVELING_DRIVER = spi_flash + # Custom RGB matrix handling RGB_MATRIX_ENABLE = yes RGB_MATRIX_DRIVER = custom diff --git a/keyboards/annepro2/halconf.h b/keyboards/annepro2/halconf.h index 686b91a7fb..dcb04eab1b 100644 --- a/keyboards/annepro2/halconf.h +++ b/keyboards/annepro2/halconf.h @@ -25,4 +25,8 @@ #define SERIAL_USB_BUFFERS_SIZE 256 +#define HAL_USE_SPI TRUE +#define SPI_USE_WAIT TRUE +#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD + #include_next diff --git a/keyboards/annepro2/mcuconf.h b/keyboards/annepro2/mcuconf.h index 8265fe6eb9..9e39bd9681 100644 --- a/keyboards/annepro2/mcuconf.h +++ b/keyboards/annepro2/mcuconf.h @@ -60,3 +60,11 @@ #define HT32_USB_USE_USB0 TRUE #define HT32_USB_USB0_IRQ_PRIORITY 5 + +/* + * SPI driver setting + */ + +#define HT32_SPI_USE_SPI1 TRUE +#define HT32_SPI1_IRQ_PRIORITY 9 +