Skip to content

Commit

Permalink
driver: i2s: esp32s3/esp32c3
Browse files Browse the repository at this point in the history
i2s support added for esp32s3 and esp32c3

Signed-off-by: Marcio Ribeiro <[email protected]>
  • Loading branch information
wmrsouza committed Jun 28, 2024
1 parent 5b4c894 commit bd3bc4b
Show file tree
Hide file tree
Showing 19 changed files with 3,574 additions and 1 deletion.
14 changes: 14 additions & 0 deletions boards/espressif/esp32c3_devkitm/esp32c3_devkitm-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,20 @@
};
};

i2s1_default: i2s1_default {
group1 {
pinmux = <I2S1_MCLK_GPIO6>,
<I2S1_O_WS_GPIO5>,
<I2S1_O_BCK_GPIO4>,
<I2S1_O_SD_GPIO18>;
output-enable;
};
group2 {
pinmux = <I2S1_I_SD_GPIO19>;
input-enable;
};
};

twai_default: twai_default {
group1 {
pinmux = <TWAI_TX_GPIO4>,
Expand Down
6 changes: 6 additions & 0 deletions boards/espressif/esp32c3_devkitm/esp32c3_devkitm.dts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,12 @@
pinctrl-names = "default";
};

&i2s1 {
pinctrl-0 = <&i2s1_default>;
pinctrl-names = "default";
status = "disabled";
};

&trng0 {
status = "okay";
};
Expand Down
1 change: 1 addition & 0 deletions boards/espressif/esp32c3_devkitm/esp32c3_devkitm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ supported:
- adc
- gpio
- i2c
- i2s
- watchdog
- uart
- dma
Expand Down
32 changes: 32 additions & 0 deletions boards/espressif/esp32s3_devkitc/esp32s3_devkitc-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,38 @@
};
};

i2s0_default: i2s0_default {
group1 {
pinmux = <I2S0_MCLK_GPIO4>,
<I2S0_O_WS_GPIO5>,
<I2S0_O_BCK_GPIO6>,
<I2S0_O_SD_GPIO7>,
<I2S0_I_WS_GPIO15>,
<I2S0_I_BCK_GPIO16>;
output-enable;
};
group2 {
pinmux = <I2S0_I_SD_GPIO17>;
input-enable;
};
};

i2s1_default: i2s1_default {
group1 {
pinmux = <I2S1_MCLK_GPIO18>,
<I2S1_O_WS_GPIO8>,
<I2S1_O_BCK_GPIO3>,
<I2S1_O_SD_GPIO9>,
<I2S1_I_WS_GPIO10>,
<I2S1_I_BCK_GPIO11>;
output-enable;
};
group2 {
pinmux = <I2S1_I_SD_GPIO12>;
input-enable;
};
};

spim2_default: spim2_default {
group1 {
pinmux = <SPIM2_MISO_GPIO13>,
Expand Down
12 changes: 12 additions & 0 deletions boards/espressif/esp32s3_devkitc/esp32s3_devkitc_procpu.dts
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,18 @@
pinctrl-names = "default";
};

&i2s0 {
pinctrl-0 = <&i2s0_default>;
pinctrl-names = "default";
status = "disabled";
};

&i2s1 {
pinctrl-0 = <&i2s1_default>;
pinctrl-names = "default";
status = "disabled";
};

&spi2 {
#address-cells = <1>;
#size-cells = <0>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ supported:
- gpio
- uart
- i2c
- i2s
- spi
- can
- counter
Expand Down
32 changes: 32 additions & 0 deletions boards/espressif/esp32s3_devkitm/esp32s3_devkitm-pinctrl.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,38 @@
};
};

i2s0_default: i2s0_default {
group1 {
pinmux = <I2S0_MCLK_GPIO1>,
<I2S0_O_WS_GPIO2>,
<I2S0_O_BCK_GPIO3>,
<I2S0_O_SD_GPIO4>,
<I2S0_I_WS_GPIO5>,
<I2S0_I_BCK_GPIO6>;
output-enable;
};
group2 {
pinmux = <I2S0_I_SD_GPIO7>;
input-enable;
};
};

i2s1_default: i2s1_default {
group1 {
pinmux = <I2S1_MCLK_GPIO8>,
<I2S1_O_WS_GPIO9>,
<I2S1_O_BCK_GPIO10>,
<I2S1_O_SD_GPIO11>,
<I2S1_I_WS_GPIO12>,
<I2S1_I_BCK_GPIO13>;
output-enable;
};
group2 {
pinmux = <I2S1_I_SD_GPIO14>;
input-enable;
};
};

spim2_default: spim2_default {
group1 {
pinmux = <SPIM2_MISO_GPIO13>,
Expand Down
12 changes: 12 additions & 0 deletions boards/espressif/esp32s3_devkitm/esp32s3_devkitm_procpu.dts
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,18 @@
pinctrl-names = "default";
};

&i2s0 {
pinctrl-0 = <&i2s0_default>;
pinctrl-names = "default";
status = "disabled";
};

&i2s1 {
pinctrl-0 = <&i2s1_default>;
pinctrl-names = "default";
status = "disabled";
};

&spi2 {
#address-cells = <1>;
#size-cells = <0>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ supported:
- gpio
- uart
- i2c
- i2s
- spi
- can
- counter
Expand Down
1 change: 1 addition & 0 deletions drivers/i2s/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ zephyr_library_sources_ifdef(CONFIG_I2S_LITEX i2s_litex.c)
zephyr_library_sources_ifdef(CONFIG_I2S_MCUX_FLEXCOMM i2s_mcux_flexcomm.c)
zephyr_library_sources_ifdef(CONFIG_I2S_NRFX i2s_nrfx.c)
zephyr_library_sources_ifdef(CONFIG_I2S_MCUX_SAI i2s_mcux_sai.c)
zephyr_library_sources_ifdef(CONFIG_I2S_ESP32 i2s_esp32.c)
28 changes: 28 additions & 0 deletions drivers/i2s/Kconfig.esp32
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Copyright (c) 2024 Espressif Systems (Shanghai) CO LTD
#
# SPDX-License-Identifier: Apache-2.0

config I2S_ESP32
bool "ESP32 I2S driver"
default y
depends on DT_HAS_ESPRESSIF_ESP32_I2S_ENABLED
depends on DT_HAS_ESPRESSIF_ESP32_GDMA_ENABLED
select GPIO_ESP32
help
Enables the ESP32 I2S driver (GDMA SoCs only)

if I2S_ESP32

config I2S_ESP32_RX_BLOCK_COUNT
int "ESP32 I2S RX block count"
default 5
help
Max number of elements waiting to be read from the I2S RX channel

config I2S_ESP32_TX_BLOCK_COUNT
int "ESP32 I2S TX block count"
default 5
help
Max number of elements waiting to be transmitted by the I2S TX channel

endif
Loading

0 comments on commit bd3bc4b

Please sign in to comment.