diff --git a/keyboards/annepro2/c15/config.h b/keyboards/annepro2/c15/config.h index ff92aeea8e6..2ebb962efbb 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 2c518b63390..302aeecbe6f 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 82a406a157c..5e4978048b6 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 60c2e08648c..b1c7208f8b9 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 686b91a7fb2..dcb04eab1ba 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 8265fe6eb94..9e39bd96814 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 +