tests: audio: dmic_util: test PDM_DT_IO_CFG_GET
Test the implementation of `PDM_DT_IO_CFG_GET`. Implemented as a distinct test from `dmic_api` to allow running natively in CI. Signed-off-by: Jordan Yates <jordan@embeint.com>
This commit is contained in:
committed by
Johan Hedberg
parent
e2d88b44e4
commit
8b697b6b03
8
tests/drivers/audio/dmic_util/CMakeLists.txt
Normal file
8
tests/drivers/audio/dmic_util/CMakeLists.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
cmake_minimum_required(VERSION 3.20.0)
|
||||
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
||||
project(dmic_util)
|
||||
|
||||
FILE(GLOB app_sources src/*.c)
|
||||
target_sources(app PRIVATE ${app_sources})
|
||||
35
tests/drivers/audio/dmic_util/app.overlay
Normal file
35
tests/drivers/audio/dmic_util/app.overlay
Normal file
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Embeint Pty Ltd
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/ {
|
||||
dmic_cfg0: dmic_cfg0 {
|
||||
compatible = "zephyr,pdm-dmic";
|
||||
clk-frequency-min = <1000000>;
|
||||
clk-frequency-max = <2000000>;
|
||||
clk-duty-cycle-min = <45>;
|
||||
clk-duty-cycle-max = <55>;
|
||||
channel-left;
|
||||
};
|
||||
|
||||
dmic_cfg1: dmic_cfg1 {
|
||||
compatible = "zephyr,pdm-dmic";
|
||||
clk-frequency-min = <100000>;
|
||||
clk-frequency-max = <400000>;
|
||||
clk-duty-cycle-min = <40>;
|
||||
clk-duty-cycle-max = <60>;
|
||||
channel-right;
|
||||
};
|
||||
|
||||
dmic_cfg2: dmic_cfg2 {
|
||||
compatible = "zephyr,pdm-dmic";
|
||||
clk-frequency-min = <150000>;
|
||||
clk-frequency-max = <450000>;
|
||||
clk-duty-cycle-min = <49>;
|
||||
clk-duty-cycle-max = <51>;
|
||||
channel-left;
|
||||
channel-right;
|
||||
};
|
||||
};
|
||||
4
tests/drivers/audio/dmic_util/prj.conf
Normal file
4
tests/drivers/audio/dmic_util/prj.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
CONFIG_TEST=y
|
||||
CONFIG_ZTEST=y
|
||||
CONFIG_AUDIO=y
|
||||
CONFIG_AUDIO_DMIC=y
|
||||
45
tests/drivers/audio/dmic_util/src/main.c
Normal file
45
tests/drivers/audio/dmic_util/src/main.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright 2025 Embeint Pty Ltd
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/audio/dmic.h>
|
||||
#include <zephyr/ztest.h>
|
||||
|
||||
ZTEST(dmic_util, test_io_cfg_get)
|
||||
{
|
||||
const struct pdm_io_cfg cfg0 = PDM_DT_IO_CFG_GET(DT_NODELABEL(dmic_cfg0));
|
||||
const struct pdm_io_cfg cfg1 = PDM_DT_IO_CFG_GET(DT_NODELABEL(dmic_cfg1));
|
||||
const struct pdm_io_cfg cfg2 = PDM_DT_IO_CFG_GET(DT_NODELABEL(dmic_cfg2));
|
||||
|
||||
zassert_equal(1000000, cfg0.min_pdm_clk_freq);
|
||||
zassert_equal(2000000, cfg0.max_pdm_clk_freq);
|
||||
zassert_equal(45, cfg0.min_pdm_clk_dc);
|
||||
zassert_equal(55, cfg0.max_pdm_clk_dc);
|
||||
|
||||
zassert_equal(100000, cfg1.min_pdm_clk_freq);
|
||||
zassert_equal(400000, cfg1.max_pdm_clk_freq);
|
||||
zassert_equal(40, cfg1.min_pdm_clk_dc);
|
||||
zassert_equal(60, cfg1.max_pdm_clk_dc);
|
||||
|
||||
zassert_equal(150000, cfg2.min_pdm_clk_freq);
|
||||
zassert_equal(450000, cfg2.max_pdm_clk_freq);
|
||||
zassert_equal(49, cfg2.min_pdm_clk_dc);
|
||||
zassert_equal(51, cfg2.max_pdm_clk_dc);
|
||||
}
|
||||
|
||||
ZTEST(dmic_util, test_channel_query)
|
||||
{
|
||||
zassert_true(PDM_DT_HAS_LEFT_CHANNEL(DT_NODELABEL(dmic_cfg0)));
|
||||
zassert_false(PDM_DT_HAS_RIGHT_CHANNEL(DT_NODELABEL(dmic_cfg0)));
|
||||
|
||||
zassert_false(PDM_DT_HAS_LEFT_CHANNEL(DT_NODELABEL(dmic_cfg1)));
|
||||
zassert_true(PDM_DT_HAS_RIGHT_CHANNEL(DT_NODELABEL(dmic_cfg1)));
|
||||
|
||||
zassert_true(PDM_DT_HAS_LEFT_CHANNEL(DT_NODELABEL(dmic_cfg2)));
|
||||
zassert_true(PDM_DT_HAS_RIGHT_CHANNEL(DT_NODELABEL(dmic_cfg2)));
|
||||
}
|
||||
|
||||
ZTEST_SUITE(dmic_util, NULL, NULL, NULL, NULL, NULL);
|
||||
6
tests/drivers/audio/dmic_util/testcase.yaml
Normal file
6
tests/drivers/audio/dmic_util/testcase.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
tests:
|
||||
drivers.audio.dmic_util:
|
||||
tags: dmic
|
||||
harness: ztest
|
||||
integration_platforms:
|
||||
- native_sim
|
||||
Reference in New Issue
Block a user