Skip to content

Commit 7468121

Browse files
Glauber Maroto Ferreiracfriedt
authored andcommitted
esp32s2: drivers: spi: add driver support
and hooks to spi_loopback test. Signed-off-by: Glauber Maroto Ferreira <[email protected]>
1 parent 26131ba commit 7468121

File tree

7 files changed

+60
-2
lines changed

7 files changed

+60
-2
lines changed

boards/xtensa/esp32s2_saola/esp32s2_saola.dts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,23 @@
4747
&trng0 {
4848
status = "okay";
4949
};
50+
51+
&spi2 {
52+
#address-cells = <1>;
53+
#size-cells = <0>;
54+
status = "okay";
55+
miso-pin = <13>;
56+
mosi-pin = <11>;
57+
sclk-pin = <12>;
58+
csel-pin = <10>;
59+
};
60+
61+
&spi3 {
62+
#address-cells = <1>;
63+
#size-cells = <0>;
64+
status = "okay";
65+
miso-pin = <37>;
66+
mosi-pin = <35>;
67+
sclk-pin = <36>;
68+
csel-pin = <34>;
69+
};

drivers/spi/Kconfig.esp32

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
menuconfig ESP32_SPIM
77
bool "ESP32 SPI Master driver"
8-
depends on SOC_ESP32
8+
depends on SOC_ESP32 || SOC_ESP32S2
99
default y
1010
help
1111
Enables support for ESP32 SPI Master driver.

drivers/spi/spi_esp32_spim.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ LOG_MODULE_REGISTER(esp32_spi, CONFIG_SPI_LOG_LEVEL);
2222
#include "spi_esp32_spim.h"
2323

2424
/* pins, signals and interrupts shall be placed into dts */
25+
#if defined(CONFIG_SOC_ESP32)
2526
#define MISO_IDX_2 HSPIQ_IN_IDX
2627
#define MISO_IDX_3 VSPIQ_IN_IDX
2728
#define MOSI_IDX_2 HSPID_OUT_IDX
@@ -30,6 +31,16 @@ LOG_MODULE_REGISTER(esp32_spi, CONFIG_SPI_LOG_LEVEL);
3031
#define SCLK_IDX_3 VSPICLK_OUT_IDX
3132
#define CSEL_IDX_2 HSPICS0_OUT_IDX
3233
#define CSEL_IDX_3 VSPICS0_OUT_IDX
34+
#elif defined(CONFIG_SOC_ESP32S2)
35+
#define MISO_IDX_2 FSPIQ_IN_IDX
36+
#define MISO_IDX_3 SPI3_Q_IN_IDX
37+
#define MOSI_IDX_2 FSPID_OUT_IDX
38+
#define MOSI_IDX_3 SPI3_D_OUT_IDX
39+
#define SCLK_IDX_2 FSPICLK_OUT_MUX_IDX
40+
#define SCLK_IDX_3 SPI3_CLK_OUT_MUX_IDX
41+
#define CSEL_IDX_2 FSPICS0_OUT_IDX
42+
#define CSEL_IDX_3 SPI3_CS0_OUT_IDX
43+
#endif
3344

3445
static bool spi_esp32_transfer_ongoing(struct spi_esp32_data *data)
3546
{

dts/xtensa/espressif/esp32s2.dtsi

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,27 @@
139139
label = "TRNG_0";
140140
status = "disabled";
141141
};
142+
143+
spi2: spi@3f424000 {
144+
compatible = "espressif,esp32-spi";
145+
reg = <0x3f424000 DT_SIZE_K(4)>;
146+
interrupts = <SPI2_INTR_SOURCE>;
147+
interrupt-parent = <&intc>;
148+
label = "SPI_2";
149+
clocks = <&rtc ESP32_FSPI_MODULE>;
150+
status = "disabled";
151+
use-iomux;
152+
};
153+
154+
spi3: spi@3f425000 {
155+
compatible = "espressif,esp32-spi";
156+
reg = <0x3f425000 DT_SIZE_K(4)>;
157+
interrupts = <SPI3_INTR_SOURCE>;
158+
interrupt-parent = <&intc>;
159+
label = "SPI_3";
160+
clocks = <&rtc ESP32_HSPI_MODULE>;
161+
status = "disabled";
162+
};
142163
};
143164

144165
};

soc/xtensa/esp32s2/soc.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ extern void esp_rom_uart_tx_wait_idle(uint8_t uart_no);
2525
extern STATUS esp_rom_uart_tx_one_char(uint8_t chr);
2626
extern STATUS esp_rom_uart_rx_one_char(uint8_t *chr);
2727

28+
extern int esp_rom_gpio_matrix_in(uint32_t gpio, uint32_t signal_index, bool inverted);
29+
extern int esp_rom_gpio_matrix_out(uint32_t gpio, uint32_t signal_index,
30+
bool out_invrted, bool out_enabled_inverted);
31+
2832
/* cache related rom functions */
2933
extern uint32_t esp_rom_Cache_Disable_ICache(void);
3034
extern uint32_t esp_rom_Cache_Disable_DCache(void);
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CONFIG_SPI_LOOPBACK_DRV_NAME="SPI_3"
2+
CONFIG_SPI_ESP32_INTERRUPT=y

west.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ manifest:
6262
groups:
6363
- hal
6464
- name: hal_espressif
65-
revision: 051266aafbd966825bad1d9b5ab98e8bed45b918
65+
revision: 8265fef8d88746c3ebb1a3c28917f2762bdecfe8
6666
path: modules/hal/espressif
6767
west-commands: west/west-commands.yml
6868
groups:

0 commit comments

Comments
 (0)