eeprom.cmake 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. set(EEPROM_DRIVER "vendor" CACHE STRING "EEPROM driver")
  2. set_property(CACHE EEPROM_DRIVER PROPERTY STRINGS vendor custom transient i2c spi wear_leveling legacy_stm32_flash)
  3. set(WEAR_LEVELING_DRIVER "none" CACHE STRING "EEPROM wear-leveling driver")
  4. set_property(CACHE WEAR_LEVELING_DRIVER PROPERTY STRINGS custom embedded_flash spi_flash rp2040_flash legacy)
  5. target_compile_definitions(qmk PUBLIC
  6. EEPROM_ENABLE
  7. )
  8. target_include_directories(qmk PUBLIC
  9. platforms/${QMK_PLATFORM}/drivers/eeprom
  10. drivers/eeprom
  11. platforms/common
  12. )
  13. if(${EEPROM_DRIVER} STREQUAL "wear_leveling")
  14. target_compile_definitions(qmk PUBLIC
  15. EEPROM_DRIVER
  16. EEPROM_WEAR_LEVELING
  17. )
  18. target_sources(qmk PUBLIC
  19. drivers/eeprom/eeprom_driver.c
  20. drivers/eeprom/eeprom_wear_leveling.c
  21. )
  22. elseif(${EEPROM_DRIVER} STREQUAL "vendor")
  23. target_compile_definitions(qmk PUBLIC
  24. EEPROM_VENDOR
  25. )
  26. if(${QMK_PLATFORM} STREQUAL "chibios")
  27. if(${QMK_MCU} MATCHES "STM32F[1-9].*" OR ${QMK_MCU} MATCHES "WB32.*" OR ${QMK_MCU} MATCHES "GD32.*")
  28. target_compile_definitions(qmk PUBLIC
  29. EEPROM_DRIVER
  30. EEPROM_WEAR_LEVELING
  31. )
  32. target_sources(qmk PUBLIC
  33. drivers/eeprom/eeprom_driver.c
  34. drivers/eeprom/eeprom_wear_leveling.c
  35. )
  36. set(WEAR_LEVELING_DRIVER "embedded_flash")
  37. endif()
  38. endif()
  39. endif()
  40. if(NOT ${WEAR_LEVELING_DRIVER} STREQUAL "none")
  41. set(FNV_ENABLE TRUE)
  42. target_compile_definitions(qmk PUBLIC
  43. WEAR_LEVELING_ENABLE
  44. )
  45. target_include_directories(qmk PUBLIC
  46. platforms/${QMK_PLATFORM}/drivers/wear_leveling
  47. drivers/wear_leveling
  48. quantum/wear_leveling
  49. )
  50. target_sources(qmk PUBLIC quantum/wear_leveling/wear_leveling.c)
  51. if(${WEAR_LEVELING_DRIVER} STREQUAL "embedded_flash")
  52. target_compile_definitions(qmk PUBLIC
  53. HAL_USE_EFL
  54. WEAR_LEVELING_EMBEDDED_FLASH
  55. )
  56. target_sources(qmk PUBLIC
  57. platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl.c
  58. )
  59. # target_compile_options(qmk PUBLIC
  60. # -include ${CMAKE_SOURCE_DIR}/platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl_config.h
  61. # )
  62. target_precompile_headers(qmk PUBLIC
  63. ${CMAKE_SOURCE_DIR}/platforms/${QMK_PLATFORM}/drivers/wear_leveling/wear_leveling_efl_config.h
  64. )
  65. endif()
  66. endif()