/* * Copyright (c) 2022 Intel Corporation. * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_DMA_DMA_CAVS_HDA_COMMON_H_ #define ZEPHYR_DRIVERS_DMA_DMA_CAVS_HDA_COMMON_H_ #define CAVS_HDA_MAX_CHANNELS 32 #include struct cavs_hda_dma_data { struct dma_context ctx; ATOMIC_DEFINE(channels_atomic, CAVS_HDA_MAX_CHANNELS); }; struct cavs_hda_dma_cfg { uint32_t base; uint32_t dma_channels; enum dma_channel_direction direction; }; int cavs_hda_dma_host_in_config(const struct device *dev, uint32_t channel, struct dma_config *dma_cfg); int cavs_hda_dma_host_out_config(const struct device *dev, uint32_t channel, struct dma_config *dma_cfg); int cavs_hda_dma_host_reload(const struct device *dev, uint32_t channel, uint32_t src, uint32_t dst, size_t size); int cavs_hda_dma_status(const struct device *dev, uint32_t channel, struct dma_status *stat); int cavs_hda_dma_start(const struct device *dev, uint32_t channel); int cavs_hda_dma_stop(const struct device *dev, uint32_t channel); int cavs_hda_dma_init(const struct device *dev); #endif /* ZEPHYR_DRIVERS_DMA_DMA_CAVS_HDA_COMMON_H_ */