From 9fbd4c38aeee6f998b2cf980dc111d9dd35529cb Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 4 Jun 2026 17:28:32 -0500 Subject: [PATCH] [i2s_audio] Move test bus into a shared package and give fixtures unique ids (#16793) --- script/analyze_component_buses.py | 1 + script/helpers.py | 1 + .../i2s_audio/common-spdif_mode.yaml | 2 +- tests/components/micro_wake_word/common.yaml | 7 ++---- .../micro_wake_word/test.esp32-idf.yaml | 6 +++++ .../micro_wake_word/test.esp32-s3-idf.yaml | 6 +++++ tests/components/mixer/common.yaml | 6 +---- tests/components/mixer/test.esp32-idf.yaml | 4 +--- tests/components/mixer/test.esp32-s3-idf.yaml | 6 ++--- tests/components/resampler/common.yaml | 10 +++------ .../components/resampler/test.esp32-idf.yaml | 6 ++--- .../resampler/test.esp32-s3-idf.yaml | 8 +++---- tests/components/router/common.yaml | 6 ++--- tests/components/router/test.esp32-idf.yaml | 9 ++++---- tests/components/sound_level/common.yaml | 7 ++---- .../sound_level/test.esp32-idf.yaml | 5 ++--- .../sound_level/test.esp32-s3-idf.yaml | 7 +++--- .../components/speaker/common-audio_dac.yaml | 6 +---- tests/components/speaker/common.yaml | 6 +---- .../speaker/test-audio_dac.esp32-idf.yaml | 6 ++--- .../speaker/test-media_player.esp32-idf.yaml | 10 ++++----- tests/components/speaker/test.esp32-idf.yaml | 6 ++--- tests/components/speaker_source/common.yaml | 10 +++------ .../speaker_source/test.esp32-idf.yaml | 10 ++++----- .../voice_assistant/common-idf.yaml | 22 +++++++++---------- tests/components/voice_assistant/common.yaml | 15 +++++-------- .../voice_assistant/test.esp32-idf.yaml | 12 +++++----- tests/test_build_components/common/README.md | 9 ++++++++ .../common/i2s_audio/esp32-idf.yaml | 14 ++++++++++++ .../common/i2s_audio/esp32-s3-idf.yaml | 14 ++++++++++++ 30 files changed, 122 insertions(+), 115 deletions(-) create mode 100644 tests/test_build_components/common/i2s_audio/esp32-idf.yaml create mode 100644 tests/test_build_components/common/i2s_audio/esp32-s3-idf.yaml diff --git a/script/analyze_component_buses.py b/script/analyze_component_buses.py index fc66605694..a343e34328 100755 --- a/script/analyze_component_buses.py +++ b/script/analyze_component_buses.py @@ -59,6 +59,7 @@ DIRECT_BUS_TYPES = ( "modbus", "remote_transmitter", "remote_receiver", + "i2s_audio", ) # Signature for components with no bus requirements diff --git a/script/helpers.py b/script/helpers.py index 8b6751c1d3..fc2a3607fb 100644 --- a/script/helpers.py +++ b/script/helpers.py @@ -53,6 +53,7 @@ BASE_BUS_COMPONENTS = { "canbus", "remote_transmitter", "remote_receiver", + "i2s_audio", } # Cache version for components graph diff --git a/tests/components/i2s_audio/common-spdif_mode.yaml b/tests/components/i2s_audio/common-spdif_mode.yaml index 374a4bce1e..681ec2aa53 100644 --- a/tests/components/i2s_audio/common-spdif_mode.yaml +++ b/tests/components/i2s_audio/common-spdif_mode.yaml @@ -3,7 +3,7 @@ i2s_audio: speaker: - platform: i2s_audio - id: speaker_id + id: spdif_speaker_id dac_type: external i2s_dout_pin: ${spdif_data_pin} spdif_mode: true diff --git a/tests/components/micro_wake_word/common.yaml b/tests/components/micro_wake_word/common.yaml index cd060c176e..9ac1056ba4 100644 --- a/tests/components/micro_wake_word/common.yaml +++ b/tests/components/micro_wake_word/common.yaml @@ -1,14 +1,11 @@ psram: mode: quad -i2s_audio: - i2s_lrclk_pin: GPIO18 - i2s_bclk_pin: GPIO19 - microphone: - platform: i2s_audio id: echo_microphone - i2s_din_pin: GPIO17 + i2s_audio_id: i2s_audio_bus + i2s_din_pin: ${mic_din_pin} adc_type: external pdm: true bits_per_sample: 16bit diff --git a/tests/components/micro_wake_word/test.esp32-idf.yaml b/tests/components/micro_wake_word/test.esp32-idf.yaml index dade44d145..fa3984d57e 100644 --- a/tests/components/micro_wake_word/test.esp32-idf.yaml +++ b/tests/components/micro_wake_word/test.esp32-idf.yaml @@ -1 +1,7 @@ +substitutions: + mic_din_pin: GPIO36 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml + <<: !include common.yaml diff --git a/tests/components/micro_wake_word/test.esp32-s3-idf.yaml b/tests/components/micro_wake_word/test.esp32-s3-idf.yaml index dade44d145..a1b7b75423 100644 --- a/tests/components/micro_wake_word/test.esp32-s3-idf.yaml +++ b/tests/components/micro_wake_word/test.esp32-s3-idf.yaml @@ -1 +1,7 @@ +substitutions: + mic_din_pin: GPIO18 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-s3-idf.yaml + <<: !include common.yaml diff --git a/tests/components/mixer/common.yaml b/tests/components/mixer/common.yaml index dee42ed280..55e96df4c2 100644 --- a/tests/components/mixer/common.yaml +++ b/tests/components/mixer/common.yaml @@ -6,14 +6,10 @@ esphome: decibel_reduction: 10 duration: 1s -i2s_audio: - i2s_lrclk_pin: ${lrclk_pin} - i2s_bclk_pin: ${bclk_pin} - i2s_mclk_pin: ${mclk_pin} - speaker: - platform: i2s_audio id: mixer_output_speaker_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${dout_pin} bits_per_sample: 32bit diff --git a/tests/components/mixer/test.esp32-idf.yaml b/tests/components/mixer/test.esp32-idf.yaml index 6712f1e468..ba42761635 100644 --- a/tests/components/mixer/test.esp32-idf.yaml +++ b/tests/components/mixer/test.esp32-idf.yaml @@ -1,10 +1,8 @@ substitutions: - lrclk_pin: GPIO4 - bclk_pin: GPIO5 - mclk_pin: GPIO15 dout_pin: GPIO14 packages: spi: !include ../../test_build_components/common/spi/esp32-idf.yaml + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common.yaml diff --git a/tests/components/mixer/test.esp32-s3-idf.yaml b/tests/components/mixer/test.esp32-s3-idf.yaml index f1721f0862..f12a9615af 100644 --- a/tests/components/mixer/test.esp32-s3-idf.yaml +++ b/tests/components/mixer/test.esp32-s3-idf.yaml @@ -1,7 +1,7 @@ substitutions: - lrclk_pin: GPIO4 - bclk_pin: GPIO5 - mclk_pin: GPIO6 dout_pin: GPIO7 +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-s3-idf.yaml + <<: !include common.yaml diff --git a/tests/components/resampler/common.yaml b/tests/components/resampler/common.yaml index 8ff09ed256..782dc831c4 100644 --- a/tests/components/resampler/common.yaml +++ b/tests/components/resampler/common.yaml @@ -1,13 +1,9 @@ -i2s_audio: - i2s_lrclk_pin: ${lrclk_pin} - i2s_bclk_pin: ${bclk_pin} - i2s_mclk_pin: ${mclk_pin} - speaker: - platform: i2s_audio - id: speaker_id + id: resampler_i2s_speaker_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${dout_pin} - platform: resampler id: resampler_speaker_id - output_speaker: speaker_id + output_speaker: resampler_i2s_speaker_id diff --git a/tests/components/resampler/test.esp32-idf.yaml b/tests/components/resampler/test.esp32-idf.yaml index 6712f1e468..c6bc03e661 100644 --- a/tests/components/resampler/test.esp32-idf.yaml +++ b/tests/components/resampler/test.esp32-idf.yaml @@ -1,10 +1,8 @@ substitutions: - lrclk_pin: GPIO4 - bclk_pin: GPIO5 - mclk_pin: GPIO15 - dout_pin: GPIO14 + dout_pin: GPIO21 packages: spi: !include ../../test_build_components/common/spi/esp32-idf.yaml + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common.yaml diff --git a/tests/components/resampler/test.esp32-s3-idf.yaml b/tests/components/resampler/test.esp32-s3-idf.yaml index f1721f0862..1d80d24cdf 100644 --- a/tests/components/resampler/test.esp32-s3-idf.yaml +++ b/tests/components/resampler/test.esp32-s3-idf.yaml @@ -1,7 +1,7 @@ substitutions: - lrclk_pin: GPIO4 - bclk_pin: GPIO5 - mclk_pin: GPIO6 - dout_pin: GPIO7 + dout_pin: GPIO16 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-s3-idf.yaml <<: !include common.yaml diff --git a/tests/components/router/common.yaml b/tests/components/router/common.yaml index f1239de3cb..5914e4ca45 100644 --- a/tests/components/router/common.yaml +++ b/tests/components/router/common.yaml @@ -8,13 +8,10 @@ esphome: - router.speaker.switch_output: target_speaker: !lambda return id(speaker_a_id); -i2s_audio: - i2s_lrclk_pin: ${a_lrclk_pin} - i2s_bclk_pin: ${a_bclk_pin} - speaker: - platform: i2s_audio id: speaker_a_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${a_dout_pin} sample_rate: 48000 @@ -22,6 +19,7 @@ speaker: channel: stereo - platform: i2s_audio id: speaker_b_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${b_dout_pin} spdif_mode: true diff --git a/tests/components/router/test.esp32-idf.yaml b/tests/components/router/test.esp32-idf.yaml index 241a9a8903..8288774941 100644 --- a/tests/components/router/test.esp32-idf.yaml +++ b/tests/components/router/test.esp32-idf.yaml @@ -1,7 +1,8 @@ substitutions: - a_lrclk_pin: GPIO4 - a_bclk_pin: GPIO5 - a_dout_pin: GPIO14 - b_dout_pin: GPIO19 + a_dout_pin: GPIO26 + b_dout_pin: GPIO27 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common.yaml diff --git a/tests/components/sound_level/common.yaml b/tests/components/sound_level/common.yaml index cc04f5bf79..eceef3a9b5 100644 --- a/tests/components/sound_level/common.yaml +++ b/tests/components/sound_level/common.yaml @@ -1,11 +1,8 @@ -i2s_audio: - i2s_lrclk_pin: ${i2s_bclk_pin} - i2s_bclk_pin: ${i2s_lrclk_pin} - microphone: - platform: i2s_audio id: i2s_microphone - i2s_din_pin: ${i2s_dout_pin} + i2s_audio_id: i2s_audio_bus + i2s_din_pin: ${i2s_din_pin} adc_type: external bits_per_sample: 16bit diff --git a/tests/components/sound_level/test.esp32-idf.yaml b/tests/components/sound_level/test.esp32-idf.yaml index 20e38e8df8..4d89f4cd2e 100644 --- a/tests/components/sound_level/test.esp32-idf.yaml +++ b/tests/components/sound_level/test.esp32-idf.yaml @@ -1,9 +1,8 @@ substitutions: - i2s_bclk_pin: GPIO25 - i2s_lrclk_pin: GPIO26 - i2s_dout_pin: GPIO27 + i2s_din_pin: GPIO39 packages: spi: !include ../../test_build_components/common/spi/esp32-idf.yaml + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common.yaml diff --git a/tests/components/sound_level/test.esp32-s3-idf.yaml b/tests/components/sound_level/test.esp32-s3-idf.yaml index 9c1f32d5bd..9dfe3b4877 100644 --- a/tests/components/sound_level/test.esp32-s3-idf.yaml +++ b/tests/components/sound_level/test.esp32-s3-idf.yaml @@ -1,6 +1,7 @@ substitutions: - i2s_bclk_pin: GPIO4 - i2s_lrclk_pin: GPIO5 - i2s_dout_pin: GPIO6 + i2s_din_pin: GPIO17 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-s3-idf.yaml <<: !include common.yaml diff --git a/tests/components/speaker/common-audio_dac.yaml b/tests/components/speaker/common-audio_dac.yaml index 67bd6c28ef..e3972b4da9 100644 --- a/tests/components/speaker/common-audio_dac.yaml +++ b/tests/components/speaker/common-audio_dac.yaml @@ -14,11 +14,6 @@ esphome: - speaker.finish: - speaker.stop: -i2s_audio: - i2s_lrclk_pin: ${i2s_bclk_pin} - i2s_bclk_pin: ${i2s_lrclk_pin} - i2s_mclk_pin: ${i2s_mclk_pin} - audio_dac: - platform: aic3204 i2c_id: i2c_bus @@ -27,6 +22,7 @@ audio_dac: speaker: - platform: i2s_audio id: speaker_with_audio_dac_id + i2s_audio_id: i2s_audio_bus audio_dac: internal_dac dac_type: external i2s_dout_pin: ${i2s_dout_pin} diff --git a/tests/components/speaker/common.yaml b/tests/components/speaker/common.yaml index 9aaf639162..895f4b4b8f 100644 --- a/tests/components/speaker/common.yaml +++ b/tests/components/speaker/common.yaml @@ -48,13 +48,9 @@ button: data: !lambda |- return {0x01, 0x02, (uint8_t)id(my_number).state}; -i2s_audio: - i2s_lrclk_pin: ${i2s_bclk_pin} - i2s_bclk_pin: ${i2s_lrclk_pin} - i2s_mclk_pin: ${i2s_mclk_pin} - speaker: - platform: i2s_audio id: speaker_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${i2s_dout_pin} diff --git a/tests/components/speaker/test-audio_dac.esp32-idf.yaml b/tests/components/speaker/test-audio_dac.esp32-idf.yaml index 71c8b06e24..48c55769da 100644 --- a/tests/components/speaker/test-audio_dac.esp32-idf.yaml +++ b/tests/components/speaker/test-audio_dac.esp32-idf.yaml @@ -1,10 +1,8 @@ substitutions: - i2s_bclk_pin: GPIO27 - i2s_lrclk_pin: GPIO26 - i2s_mclk_pin: GPIO25 - i2s_dout_pin: GPIO23 + i2s_dout_pin: GPIO33 packages: i2c: !include ../../test_build_components/common/i2c/esp32-idf.yaml + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common-audio_dac.yaml diff --git a/tests/components/speaker/test-media_player.esp32-idf.yaml b/tests/components/speaker/test-media_player.esp32-idf.yaml index 4712e4bae8..9ef164bb03 100644 --- a/tests/components/speaker/test-media_player.esp32-idf.yaml +++ b/tests/components/speaker/test-media_player.esp32-idf.yaml @@ -1,9 +1,7 @@ substitutions: - scl_pin: GPIO16 - sda_pin: GPIO17 - i2s_bclk_pin: GPIO27 - i2s_lrclk_pin: GPIO26 - i2s_mclk_pin: GPIO25 - i2s_dout_pin: GPIO23 + i2s_dout_pin: GPIO13 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common-media_player.yaml diff --git a/tests/components/speaker/test.esp32-idf.yaml b/tests/components/speaker/test.esp32-idf.yaml index 27b8604656..b6aeca4faa 100644 --- a/tests/components/speaker/test.esp32-idf.yaml +++ b/tests/components/speaker/test.esp32-idf.yaml @@ -1,10 +1,8 @@ substitutions: - i2s_bclk_pin: GPIO27 - i2s_lrclk_pin: GPIO26 - i2s_mclk_pin: GPIO25 - i2s_dout_pin: GPIO12 + i2s_dout_pin: GPIO13 packages: i2c: !include ../../test_build_components/common/i2c/esp32-idf.yaml + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common.yaml diff --git a/tests/components/speaker_source/common.yaml b/tests/components/speaker_source/common.yaml index 7d663b802c..d31b97553e 100644 --- a/tests/components/speaker_source/common.yaml +++ b/tests/components/speaker_source/common.yaml @@ -1,17 +1,13 @@ -i2s_audio: - i2s_lrclk_pin: ${i2s_bclk_pin} - i2s_bclk_pin: ${i2s_lrclk_pin} - i2s_mclk_pin: ${i2s_mclk_pin} - speaker: - platform: i2s_audio - id: speaker_id + id: speaker_source_speaker_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${i2s_dout_pin} sample_rate: 48000 num_channels: 2 - platform: mixer - output_speaker: speaker_id + output_speaker: speaker_source_speaker_id source_speakers: - id: announcement_mixer_speaker_id - id: media_mixer_speaker_id diff --git a/tests/components/speaker_source/test.esp32-idf.yaml b/tests/components/speaker_source/test.esp32-idf.yaml index e2439ebdf2..5a2fd16938 100644 --- a/tests/components/speaker_source/test.esp32-idf.yaml +++ b/tests/components/speaker_source/test.esp32-idf.yaml @@ -1,9 +1,7 @@ substitutions: - scl_pin: GPIO16 - sda_pin: GPIO17 - i2s_bclk_pin: GPIO27 - i2s_lrclk_pin: GPIO26 - i2s_mclk_pin: GPIO25 - i2s_dout_pin: GPIO23 + i2s_dout_pin: GPIO22 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common.yaml diff --git a/tests/components/voice_assistant/common-idf.yaml b/tests/components/voice_assistant/common-idf.yaml index 0fa0903370..812e7a2314 100644 --- a/tests/components/voice_assistant/common-idf.yaml +++ b/tests/components/voice_assistant/common-idf.yaml @@ -11,14 +11,9 @@ wifi: api: -i2s_audio: - i2s_lrclk_pin: ${i2s_lrclk_pin} - i2s_bclk_pin: ${i2s_bclk_pin} - i2s_mclk_pin: ${i2s_mclk_pin} - micro_wake_word: id: mww_id - microphone: mic_id_external + microphone: va_mic_id_external on_wake_word_detected: - voice_assistant.start: wake_word: !lambda return wake_word; @@ -27,31 +22,34 @@ micro_wake_word: microphone: - platform: i2s_audio - id: mic_id_external + id: va_mic_id_external + i2s_audio_id: i2s_audio_bus i2s_din_pin: ${i2s_din_pin} adc_type: external pdm: false - platform: i2s_audio - id: mic_id_external2 + id: va_mic_id_external2 + i2s_audio_id: i2s_audio_bus i2s_din_pin: ${i2s_din_pin2} adc_type: external pdm: false speaker: - platform: i2s_audio - id: speaker_id + id: va_speaker_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${i2s_dout_pin} voice_assistant: microphone: - - microphone: mic_id_external + - microphone: va_mic_id_external gain_factor: 4 channels: 0 - - microphone: mic_id_external2 + - microphone: va_mic_id_external2 gain_factor: 4 channels: 0 - speaker: speaker_id + speaker: va_speaker_id micro_wake_word: mww_id conversation_timeout: 60s on_listening: diff --git a/tests/components/voice_assistant/common.yaml b/tests/components/voice_assistant/common.yaml index d09de74396..8604bea795 100644 --- a/tests/components/voice_assistant/common.yaml +++ b/tests/components/voice_assistant/common.yaml @@ -11,30 +11,27 @@ wifi: api: -i2s_audio: - i2s_lrclk_pin: ${i2s_lrclk_pin} - i2s_bclk_pin: ${i2s_bclk_pin} - i2s_mclk_pin: ${i2s_mclk_pin} - microphone: - platform: i2s_audio - id: mic_id_external + id: va_mic_id_external + i2s_audio_id: i2s_audio_bus i2s_din_pin: ${i2s_din_pin} adc_type: external pdm: false speaker: - platform: i2s_audio - id: speaker_id + id: va_speaker_id + i2s_audio_id: i2s_audio_bus dac_type: external i2s_dout_pin: ${i2s_dout_pin} voice_assistant: microphone: - microphone: mic_id_external + microphone: va_mic_id_external gain_factor: 4 channels: 0 - speaker: speaker_id + speaker: va_speaker_id conversation_timeout: 60s on_listening: - logger.log: "Voice assistant microphone listening" diff --git a/tests/components/voice_assistant/test.esp32-idf.yaml b/tests/components/voice_assistant/test.esp32-idf.yaml index 0cc670a77e..de2b221da7 100644 --- a/tests/components/voice_assistant/test.esp32-idf.yaml +++ b/tests/components/voice_assistant/test.esp32-idf.yaml @@ -1,9 +1,9 @@ substitutions: - i2s_lrclk_pin: GPIO4 - i2s_bclk_pin: GPIO5 - i2s_mclk_pin: GPIO15 - i2s_din_pin: GPIO13 - i2s_din_pin2: GPIO14 - i2s_dout_pin: GPIO12 + i2s_din_pin: GPIO34 + i2s_din_pin2: GPIO35 + i2s_dout_pin: GPIO32 + +packages: + i2s_audio: !include ../../test_build_components/common/i2s_audio/esp32-idf.yaml <<: !include common-idf.yaml diff --git a/tests/test_build_components/common/README.md b/tests/test_build_components/common/README.md index 76f14b8664..5e925d0067 100644 --- a/tests/test_build_components/common/README.md +++ b/tests/test_build_components/common/README.md @@ -145,6 +145,15 @@ Same pin allocations as standard I2C, but with 10kHz frequency for components re Same UART pins as above, plus: - **flow_control_pin**: GPIO4 (all platforms) +### I2S Audio +Provides a shared `i2s_audio_bus` (clock pins only); ESP32 family only: +- **ESP32 IDF / ESP32-S3 IDF**: BCLK=GPIO5, LRCLK=GPIO4, MCLK=GPIO15 + +Each consumer keeps its own `i2s_dout_pin`/`i2s_din_pin` substitution and must use a +unique data pin, since several speakers/microphones can share one bus when grouped. +The `i2s_audio` component itself (and the isolated PDM `microphone`) keep defining the +bus inline and are not grouped. + ### BLE - **ESP32**: Shared `esp32_ble_tracker` infrastructure - Each component defines unique `ble_client` with different MAC addresses diff --git a/tests/test_build_components/common/i2s_audio/esp32-idf.yaml b/tests/test_build_components/common/i2s_audio/esp32-idf.yaml new file mode 100644 index 0000000000..b540ca9af0 --- /dev/null +++ b/tests/test_build_components/common/i2s_audio/esp32-idf.yaml @@ -0,0 +1,14 @@ +# Common I2S audio bus configuration for ESP32 IDF tests +# Provides a shared i2s_audio bus that speaker/microphone components can use +# Each consumer must give its speaker/microphone a unique data pin + +substitutions: + i2s_bclk_pin: GPIO5 + i2s_lrclk_pin: GPIO4 + i2s_mclk_pin: GPIO15 + +i2s_audio: + - id: i2s_audio_bus + i2s_bclk_pin: ${i2s_bclk_pin} + i2s_lrclk_pin: ${i2s_lrclk_pin} + i2s_mclk_pin: ${i2s_mclk_pin} diff --git a/tests/test_build_components/common/i2s_audio/esp32-s3-idf.yaml b/tests/test_build_components/common/i2s_audio/esp32-s3-idf.yaml new file mode 100644 index 0000000000..d6632cc264 --- /dev/null +++ b/tests/test_build_components/common/i2s_audio/esp32-s3-idf.yaml @@ -0,0 +1,14 @@ +# Common I2S audio bus configuration for ESP32-S3 IDF tests +# Provides a shared i2s_audio bus that speaker/microphone components can use +# Each consumer must give its speaker/microphone a unique data pin + +substitutions: + i2s_bclk_pin: GPIO5 + i2s_lrclk_pin: GPIO4 + i2s_mclk_pin: GPIO15 + +i2s_audio: + - id: i2s_audio_bus + i2s_bclk_pin: ${i2s_bclk_pin} + i2s_lrclk_pin: ${i2s_lrclk_pin} + i2s_mclk_pin: ${i2s_mclk_pin}