48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
|
/*
|
||
|
* 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 <drivers/dma.h>
|
||
|
|
||
|
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_ */
|