mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
driver: spi_slave: make sure CS helpers are in IRAM if the ISR is
Closes https://github.com/espressif/esp-idf/issues/3870
This commit is contained in:
parent
12dddeb160
commit
efc00f1183
@ -73,21 +73,21 @@ typedef struct {
|
|||||||
|
|
||||||
static spi_slave_t *spihost[SOC_SPI_PERIPH_NUM];
|
static spi_slave_t *spihost[SOC_SPI_PERIPH_NUM];
|
||||||
|
|
||||||
static void IRAM_ATTR spi_intr(void *arg);
|
static void SPI_SLAVE_ISR_ATTR spi_intr(void *arg);
|
||||||
|
|
||||||
static inline bool bus_is_iomux(spi_slave_t *host)
|
static inline bool SPI_SLAVE_ISR_ATTR bus_is_iomux(spi_slave_t *host)
|
||||||
{
|
{
|
||||||
return host->flags&SPICOMMON_BUSFLAG_IOMUX_PINS;
|
return host->flags&SPICOMMON_BUSFLAG_IOMUX_PINS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void freeze_cs(spi_slave_t *host)
|
static void SPI_SLAVE_ISR_ATTR freeze_cs(spi_slave_t *host)
|
||||||
{
|
{
|
||||||
gpio_matrix_in(GPIO_FUNC_IN_HIGH, spi_periph_signal[host->id].spics_in, false);
|
gpio_matrix_in(GPIO_FUNC_IN_HIGH, spi_periph_signal[host->id].spics_in, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use this function instead of cs_initial to avoid overwrite the output config
|
// Use this function instead of cs_initial to avoid overwrite the output config
|
||||||
// This is used in test by internal gpio matrix connections
|
// This is used in test by internal gpio matrix connections
|
||||||
static inline void restore_cs(spi_slave_t *host)
|
static inline void SPI_SLAVE_ISR_ATTR restore_cs(spi_slave_t *host)
|
||||||
{
|
{
|
||||||
if (bus_is_iomux(host)) {
|
if (bus_is_iomux(host)) {
|
||||||
gpio_iomux_in(host->cfg.spics_io_num, spi_periph_signal[host->id].spics_in);
|
gpio_iomux_in(host->cfg.spics_io_num, spi_periph_signal[host->id].spics_in);
|
||||||
|
Loading…
Reference in New Issue
Block a user