diff --git a/drivers/i2s/CMakeLists.txt b/drivers/i2s/CMakeLists.txt index 90b8d737a11..7857b6e863b 100644 --- a/drivers/i2s/CMakeLists.txt +++ b/drivers/i2s/CMakeLists.txt @@ -13,3 +13,4 @@ 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) +zephyr_library_sources_ifdef(CONFIG_I2S_TEST i2s_test.c) diff --git a/drivers/i2s/Kconfig.test b/drivers/i2s/Kconfig.test new file mode 100644 index 00000000000..d6140e3f89a --- /dev/null +++ b/drivers/i2s/Kconfig.test @@ -0,0 +1,6 @@ +# Copyright (c) 2024 TOKITA Hiroshi +# SPDX-License-Identifier: Apache-2.0 + +config I2S_TEST + def_bool DT_HAS_VND_I2S_ENABLED + depends on DT_HAS_VND_I2S_ENABLED diff --git a/drivers/i2s/i2s_test.c b/drivers/i2s/i2s_test.c new file mode 100644 index 00000000000..9c5688b5b97 --- /dev/null +++ b/drivers/i2s/i2s_test.c @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2024 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#define DT_DRV_COMPAT vnd_i2s + +#include +#include + +static int vnd_i2s_configure(const struct device *dev, enum i2s_dir dir, + const struct i2s_config *i2s_cfg) +{ + return -ENOTSUP; +} + +static const struct i2s_config *vnd_i2s_config_get(const struct device *dev, enum i2s_dir dir) +{ + return NULL; +} + +static int vnd_i2s_trigger(const struct device *dev, enum i2s_dir dir, enum i2s_trigger_cmd cmd) +{ + return -ENOTSUP; +} + +static int vnd_i2s_read(const struct device *dev, void **mem_block, size_t *size) +{ + return -ENOTSUP; +} + +static int vnd_i2s_write(const struct device *dev, void *mem_block, size_t size) +{ + return -ENOTSUP; +} + +static const struct i2s_driver_api vnd_i2s_driver_api = { + .configure = vnd_i2s_configure, + .config_get = vnd_i2s_config_get, + .trigger = vnd_i2s_trigger, + .read = vnd_i2s_read, + .write = vnd_i2s_write, +}; + +static int vnd_i2s_init(const struct device *dev) +{ + return 0; +} + +#define VND_I2S_INIT(index) \ + DEVICE_DT_INST_DEFINE(index, &vnd_i2s_init, NULL, NULL, NULL, POST_KERNEL, \ + CONFIG_I2S_INIT_PRIORITY, &vnd_i2s_driver_api); + +DT_INST_FOREACH_STATUS_OKAY(VND_I2S_INIT) diff --git a/dts/bindings/test/vnd,i2s.yaml b/dts/bindings/test/vnd,i2s.yaml new file mode 100644 index 00000000000..bacb81c403b --- /dev/null +++ b/dts/bindings/test/vnd,i2s.yaml @@ -0,0 +1,8 @@ +# Copyright (c) 2024 TOKITA Hiroshi +# SPDX-License-Identifier: Apache-2.0 + +description: Test I2S Controller node + +compatible: "vnd,i2s" + +include: i2s-controller.yaml