@@ -15,7 +15,11 @@ LOG_MODULE_REGISTER(esp32_spi, CONFIG_SPI_LOG_LEVEL);
1515
1616#include <soc.h>
1717#include <drivers/spi.h>
18+ #ifndef CONFIG_SOC_ESP32C3
1819#include <drivers/interrupt_controller/intc_esp32.h>
20+ #else
21+ #include <drivers/interrupt_controller/intc_esp32c3.h>
22+ #endif
1923#include <drivers/gpio/gpio_esp32.h>
2024#include <drivers/clock_control.h>
2125#include "spi_context.h"
@@ -40,6 +44,17 @@ LOG_MODULE_REGISTER(esp32_spi, CONFIG_SPI_LOG_LEVEL);
4044#define SCLK_IDX_3 SPI3_CLK_OUT_MUX_IDX
4145#define CSEL_IDX_2 FSPICS0_OUT_IDX
4246#define CSEL_IDX_3 SPI3_CS0_OUT_IDX
47+ #elif defined(CONFIG_SOC_ESP32C3 )
48+ #define MISO_IDX_2 FSPIQ_IN_IDX
49+ #define MOSI_IDX_2 FSPID_OUT_IDX
50+ #define SCLK_IDX_2 FSPICLK_OUT_IDX
51+ #define CSEL_IDX_2 FSPICS0_OUT_IDX
52+ #endif
53+
54+ #ifdef CONFIG_SOC_ESP32C3
55+ #define ISR_HANDLER isr_handler_t
56+ #else
57+ #define ISR_HANDLER intr_handler_t
4358#endif
4459
4560static bool spi_esp32_transfer_ongoing (struct spi_esp32_data * data )
@@ -124,7 +139,11 @@ static int spi_esp32_init(const struct device *dev)
124139 }
125140
126141#ifdef CONFIG_SPI_ESP32_INTERRUPT
127- data -> irq_line = esp_intr_alloc (cfg -> irq_source , 0 , spi_esp32_isr , (void * )dev , NULL );
142+ data -> irq_line = esp_intr_alloc (cfg -> irq_source ,
143+ 0 ,
144+ (ISR_HANDLER )spi_esp32_isr ,
145+ (void * )dev ,
146+ NULL );
128147#endif
129148
130149 spi_context_unlock_unconditionally (& data -> ctx );
0 commit comments