Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions zephyr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ if(CONFIG_JOYBUS)
# Put the public headers on the include path
zephyr_include_directories(${ZEPHYR_CURRENT_MODULE_DIR}/include)

# Hand the ESP32 backend its interrupt placement choice
zephyr_compile_definitions_ifdef(CONFIG_JOYBUS_ESP32_ISR_IRAM_SAFE JOYBUS_ESP32_ISR_IRAM_SAFE=1)

# Scan those headers for the device API the drivers declare
zephyr_syscall_include_directories(${ZEPHYR_CURRENT_MODULE_DIR}/include)

Expand Down
8 changes: 8 additions & 0 deletions zephyr/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,14 @@ config JOYBUS_ESP32_INIT_PRIORITY
Device init priority, which decides where the bus comes up among the
other POST_KERNEL devices. The driver waits on no other device.

config JOYBUS_ESP32_ISR_IRAM_SAFE
bool "Keep the Joybus interrupt live during flash writes"
help
Allocate the RMT interrupt with the IRAM flag, so the bus keeps
answering while the cache is off for a flash write. Every callback
the bus invokes, and every table those read, must then live in RAM,
or the first one to run during a write faults.

endif # JOYBUS_ESP32

endif # JOYBUS
Loading