Skip to content

Commit

Permalink
ESP32: Add driver support to SPI Master and Slave
Browse files Browse the repository at this point in the history
This driver was implemented by Dong Heng <dongheng@espressif.com>
and modified to fix coding style by Alan Carvalho de Assis.
  • Loading branch information
acassis committed Jul 19, 2020
1 parent d6827ca commit 2606824
Show file tree
Hide file tree
Showing 7 changed files with 5,119 additions and 16 deletions.
4 changes: 2 additions & 2 deletions arch/xtensa/include/esp32/irq.h
Expand Up @@ -234,9 +234,9 @@
#define ESP32_IRQ_CPU_CPU2 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_CPU_CPU2)
#define ESP32_IRQ_CPU_CPU3 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_CPU_CPU3)
#define ESP32_IRQ_SPI0 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_SPI0)
#define ESP32_IRQ_SPI1 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_SPI1
#define ESP32_IRQ_SPI1 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_SPI1)
#define ESP32_IRQ_SPI2 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_SPI2)
#define ESP32_IRQ_SPI3 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_SPI3
#define ESP32_IRQ_SPI3 (XTENSA_IRQ_FIRSTPERIPH+ESP32_PERIPH_SPI3)

#define ESP32_IRQ_SREG0 ESP32_IRQ_MAC
#define ESP32_NIRQS_SREG0 32
Expand Down
80 changes: 66 additions & 14 deletions arch/xtensa/src/esp32/Kconfig
Expand Up @@ -81,25 +81,23 @@ config ESP32_SDMMC
---help---
No yet implemented

config ESP32_SPI0
bool "SPI 0"
default n
depends on EXPERIMENTAL
---help---
No yet implemented

config ESP32_SPI1
bool "SPI 1"
config ESP32_SPI
bool
default n
depends on EXPERIMENTAL
---help---
No yet implemented

config ESP32_SPI2
bool "SPI 2"
default n
---help---
No yet implemented
select ESP32_SPI
select ESP32_GPIO_IRQ
select SPI

config ESP32_SPI3
bool "SPI 3"
default n
select ESP32_SPI
select ESP32_GPIO_IRQ
select SPI

config XTENSA_TIMER1
bool "Xtensa Timer 1"
Expand Down Expand Up @@ -309,4 +307,58 @@ endif # SERIAL_IFLOWCONTROL || SERIAL_OFLOWCONTROL
endif # ESP32_UART2

endmenu # UART configuration

menu "SPI configuration"
depends on ESP32_SPI

if ESP32_SPI2

config ESP32_SPI2_CSPIN
int "SPI2 CS Pin"
default 13
range 0 39

config ESP32_SPI2_CLKPIN
int "SPI2 CLK Pin"
default 14
range 0 39

config ESP32_SPI2_MOSIPIN
int "SPI2 MOSI Pin"
default 15
range 0 39

config ESP32_SPI2_MISOPIN
int "SPI2 MISO Pin"
default 2
range 0 39

endif # ESP32_SPI2

if ESP32_SPI3

config ESP32_SPI3_CSPIN
int "SPI3 CS Pin"
default 13
range 0 39

config ESP32_SPI3_CLKPIN
int "SPI3 CLK Pin"
default 14
range 0 39

config ESP32_SPI3_MOSIPIN
int "SPI3 MOSI Pin"
default 15
range 0 39

config ESP32_SPI3_MISOPIN
int "SPI3 MISO Pin"
default 2
range 0 39

endif # ESP32_SPI3

endmenu # ESP32_SPI

endif # ARCH_CHIP_ESP32
7 changes: 7 additions & 0 deletions arch/xtensa/src/esp32/Make.defs
Expand Up @@ -100,6 +100,13 @@ CHIP_CSRCS += esp32_gpio.c esp32_intdecode.c esp32_irq.c esp32_region.c
CHIP_CSRCS += esp32_timerisr.c
CHIP_CSRCS += esp32_user.c

ifeq ($(CONFIG_ESP32_SPI),y)
CHIP_CSRCS += esp32_spi.c
ifeq ($(CONFIG_SPI_SLAVE),y)
CHIP_CSRCS += esp32_spi_slave.c
endif
endif

# Configuration-dependent ESP32 files

ifeq ($(CONFIG_SMP),y)
Expand Down

0 comments on commit 2606824

Please sign in to comment.