16#ifndef __SOF_LIB_DAI_ZEPHYR_H__
17#define __SOF_LIB_DAI_ZEPHYR_H__
27#include <sof/trace/trace.h>
36#include <zephyr/device.h>
37#include <zephyr/drivers/dai.h>
47#define DAI_CREAT BIT(0)
54 const struct device *
dev;
114 unsigned int frames);
163#if CONFIG_XRUN_NOTIFICATIONS_ENABLE
164 bool xrun_notification_sent;
166#ifdef CONFIG_SOF_TELEMETRY_IO_PERFORMANCE_MEASUREMENTS
168 struct io_perf_data_item *io_perf_dai_byte_count;
187 uint32_t mask, uint32_t
value)
245 const void *spec_config,
size_t size);
277 const void *spec_config);
322#include <zephyr/syscalls/dai-zephyr.h>
Component API definition.
void dai_group_put(struct dai_group *group)
API to release DAI group.
int dai_get_fifo_depth(struct dai *dai, int direction)
Get Digital Audio interface fifo depth.
uint32_t dai_get_init_delay_ms(struct dai *dai)
Get DAI initial delay in milliseconds.
void dai_release_llp_slot(struct dai_data *dd)
release llp slot
int dai_config_dma_channel(struct dai_data *dd, struct comp_dev *dev, const void *config)
Configure DMA channel for DAI.
static uint32_t dai_read(struct dai *dai, uint32_t reg)
Definition dai-zephyr.h:181
int dai_config(struct dai_data *dd, struct comp_dev *dev, struct ipc_config_dai *common_cfg, const void *spec_cfg)
Configure DAI physical interface.
__syscall const struct device * dai_get_device(enum sof_ipc_dai_type type, uint32_t index)
Retrieve a pointer to the Zephyr device structure for a DAI of a given type and index.
void dai_put(struct dai *dai)
API to release a platform DAI.
const struct device ** dai_get_device_list(size_t *count)
Retrieve the list of all DAI devices.
int(* channel_copy_func)(const struct audio_stream *src, unsigned int src_channel, struct audio_stream *dst, unsigned int dst_channel, unsigned int frames)
Definition dai-zephyr.h:112
static int dai_init(struct sof *sof)
API to initialize a platform DAI.
Definition dai-zephyr.h:220
void dai_set_link_hda_config(uint16_t *link_config, struct ipc_config_dai *common_config, const void *spec_config)
Configure HD Audio DMA params for DAI.
void dai_dma_position_update(struct dai_data *dd, struct comp_dev *dev)
update dai dma position for host driver.
int dai_assign_group(struct dai_data *dd, struct comp_dev *dev, uint32_t group_id)
Assign DAI to a group for simultaneous triggering.
int dai_get_handshake(struct dai *dai, int direction, int stream_id)
Get Digital Audio interface DMA Handshake.
struct dai * dai_get(uint32_t type, uint32_t index, uint32_t flags)
API to request a platform DAI.
void dai_dma_release(struct dai_data *dd, struct comp_dev *dev)
Reset DAI DMA config.
static void dai_write(struct dai *dai, uint32_t reg, uint32_t value)
Definition dai-zephyr.h:177
static void dai_update_bits(struct dai *dai, uint32_t reg, uint32_t mask, uint32_t value)
Definition dai-zephyr.h:186
struct dai_group * dai_group_get(uint32_t group_id, uint32_t flags)
API to request DAI group.
int dai_position(struct comp_dev *dev, struct sof_ipc_stream_posn *posn)
dai position for host driver.
int dai_set_config(struct dai *dai, struct ipc_config_dai *config, const void *spec_config, size_t size)
Digital Audio interface formatting.
int dai_get_stream_id(struct dai *dai, int direction)
Get DAI stream id.
#define list_item(item, type, member)
Definition list.h:80
PCM converter header file.
int(* pcm_converter_func)(const struct cir_buf_source *source, uint32_t src_channels, struct cir_buf_sink *sink, uint32_t sink_channels, size_t source_samples, uint32_t chmap)
PCM conversion function interface for data in circular buffer.
Definition pcm_converter.h:51
sof_ipc_dai_type
Types of DAI.
Definition dai.h:82
Audio stream is a circular buffer aware of audio format of the data in the buffer so provides API for...
Definition audio_stream.h:52
Audio component base device "class".
Definition component.h:645
DAI runtime data.
Definition dai-zephyr.h:119
struct sof_dma * dma
Definition dai-zephyr.h:130
struct comp_buffer * dma_buffer
Definition dai-zephyr.h:126
struct dai_group * group
Definition dai-zephyr.h:131
struct ipc_config_dai ipc_config
Definition dai-zephyr.h:145
struct mod_alloc_ctx alloc_ctx
Definition dai-zephyr.h:173
bool delayed_dma_stop
Definition dai-zephyr.h:157
int xrun
Definition dai-zephyr.h:132
uint32_t stream_id
Definition dai-zephyr.h:122
struct dai * dai
Definition dai-zephyr.h:129
struct dma_sg_config config
Definition dai-zephyr.h:123
channel_copy_func channel_copy
Definition dai-zephyr.h:137
uint32_t chmap
Definition dai-zephyr.h:135
struct llp_slot_info slot_info
Definition dai-zephyr.h:160
pcm_converter_func process
Definition dai-zephyr.h:134
uint32_t period_bytes
Definition dai-zephyr.h:142
struct dai_ts_cfg ts_config
Definition dai-zephyr.h:128
struct comp_dev * dai_dev
Definition dai-zephyr.h:125
struct copier_gain_params * gain_data
Definition dai-zephyr.h:171
void * dai_spec_config
Definition dai-zephyr.h:146
bool fast_mode
Definition dai-zephyr.h:162
uint64_t total_data_processed
Definition dai-zephyr.h:143
struct comp_buffer * local_buffer
Definition dai-zephyr.h:127
uint64_t wallclock
Definition dai-zephyr.h:148
struct dma_config * z_config
Definition dai-zephyr.h:124
int chan_index
Definition dai-zephyr.h:121
DAI group information.
Definition dai-zephyr.h:72
int trigger_cmd
Trigger command to propagate.
Definition dai-zephyr.h:91
uint32_t trigger_counter
Number of DAIs to receive a trigger before processing begins.
Definition dai-zephyr.h:86
uint32_t num_dais
Number of DAIs in this group.
Definition dai-zephyr.h:81
struct list_item list
Group list.
Definition dai-zephyr.h:101
int trigger_ret
Last trigger error.
Definition dai-zephyr.h:96
uint32_t group_id
Group ID.
Definition dai-zephyr.h:76
Definition dai-zephyr.h:49
uint32_t index
Definition dai-zephyr.h:50
uint32_t dma_caps
Definition dai-zephyr.h:52
const struct dai_data * dd
Definition dai-zephyr.h:55
struct k_spinlock lock
Definition dai-zephyr.h:56
uint32_t dma_dev
Definition dai-zephyr.h:53
const struct device * dev
Definition dai-zephyr.h:54
uint32_t type
Definition dai-zephyr.h:51
Definition ipc-config.h:65
llp slot info for memory window
Definition dai-zephyr.h:107
uint32_t reg_offset
Definition dai-zephyr.h:109
uint32_t node_id
Definition dai-zephyr.h:108
General firmware context.
Definition sof.h:44
char value[]
Definition tlv.h:2
uint32_t type
Definition tlv.h:0
Definition dai-zephyr.h:59
uint16_t full
Definition dai-zephyr.h:60
uint16_t dir
Definition dai-zephyr.h:66
struct hdalink_cfg::@216272365033074115316234343072210071320203073153 part
uint16_t rsvd
Definition dai-zephyr.h:65
uint16_t lchan
Definition dai-zephyr.h:62
uint16_t hchan
Definition dai-zephyr.h:63
uint16_t stream
Definition dai-zephyr.h:64