12#ifndef ZEPHYR_INCLUDE_DRIVERS_DAI_H_
13#define ZEPHYR_INCLUDE_DRIVERS_DAI_H_
234__subsystem
struct dai_driver_api {
235 int (*probe)(
const struct device *dev);
236 int (*remove)(
const struct device *dev);
238 const void *bespoke_cfg);
274 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
276 return api->probe(dev);
291 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
293 return api->remove(dev);
318 const void *bespoke_cfg)
320 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
322 return api->config_set(dev, cfg, bespoke_cfg);
336 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
338 return api->config_get(dev, dir);
355 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
357 return api->get_properties(dev, dir, stream_id);
381 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
383 return api->trigger(dev, dir,
cmd);
397 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
402 return api->ts_config(dev, cfg);
416 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
421 return api->ts_start(dev, cfg);
435 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
440 return api->ts_stop(dev, cfg);
456 const struct dai_driver_api *api = (
const struct dai_driver_api *)dev->
api;
461 return api->ts_get(dev, cfg, tsd);
static int dai_config_set(const struct device *dev, const struct dai_config *cfg, const void *bespoke_cfg)
Configure operation of a DAI driver.
Definition: dai.h:316
dai_state
Definition: dai.h:74
static int dai_ts_start(const struct device *dev, struct dai_ts_cfg *cfg)
Definition: dai.h:414
static int dai_probe(const struct device *dev)
Probe operation of DAI driver.
Definition: dai.h:272
static int dai_remove(const struct device *dev)
Remove operation of DAI driver.
Definition: dai.h:289
static int dai_ts_stop(const struct device *dev, struct dai_ts_cfg *cfg)
Definition: dai.h:433
static const struct dai_config * dai_config_get(const struct device *dev, enum dai_dir dir)
Fetch configuration information of a DAI driver.
Definition: dai.h:333
static int dai_trigger(const struct device *dev, enum dai_dir dir, enum dai_trigger_cmd cmd)
Send a trigger command.
Definition: dai.h:377
static int dai_ts_config(const struct device *dev, struct dai_ts_cfg *cfg)
Definition: dai.h:395
static const struct dai_properties * dai_get_properties(const struct device *dev, enum dai_dir dir, int stream_id)
Fetch properties of a DAI driver.
Definition: dai.h:351
dai_type
Types of DAI.
Definition: dai.h:43
dai_trigger_cmd
Definition: dai.h:97
static int dai_ts_get(const struct device *dev, struct dai_ts_cfg *cfg, struct dai_ts_data *tsd)
Definition: dai.h:453
dai_dir
Dai Direction.
Definition: dai.h:64
@ DAI_STATE_READY
Definition: dai.h:83
@ DAI_STATE_PRE_RUNNING
Definition: dai.h:87
@ DAI_STATE_ERROR
Definition: dai.h:93
@ DAI_STATE_NOT_READY
The interface is not ready.
Definition: dai.h:81
@ DAI_STATE_RUNNING
Definition: dai.h:85
@ DAI_STATE_STOPPING
Definition: dai.h:91
@ DAI_STATE_PAUSED
Definition: dai.h:89
@ DAI_INTEL_ALH
Definition: dai.h:48
@ DAI_INTEL_HDA
Definition: dai.h:47
@ DAI_LEGACY_I2S
Definition: dai.h:44
@ DAI_INTEL_ALH_NHLT
Definition: dai.h:58
@ DAI_INTEL_DMIC
Definition: dai.h:46
@ DAI_AMD_DMIC
Definition: dai.h:53
@ DAI_INTEL_DMIC_NHLT
Definition: dai.h:56
@ DAI_AMD_BT
Definition: dai.h:51
@ DAI_IMX_ESAI
Definition: dai.h:50
@ DAI_INTEL_SSP_NHLT
Definition: dai.h:55
@ DAI_INTEL_SSP
Definition: dai.h:45
@ DAI_IMX_SAI
Definition: dai.h:49
@ DAI_AMD_SP
Definition: dai.h:52
@ DAI_MEDIATEK_AFE
Definition: dai.h:54
@ DAI_INTEL_HDA_NHLT
Definition: dai.h:57
@ DAI_TRIGGER_DRAIN
Empty the transmit queue.
Definition: dai.h:143
@ DAI_TRIGGER_DROP
Discard the transmit / receive queue.
Definition: dai.h:150
@ DAI_TRIGGER_STOP
Stop the transmission / reception of data.
Definition: dai.h:120
@ DAI_TRIGGER_COPY
Copy.
Definition: dai.h:167
@ DAI_TRIGGER_START
Start the transmission / reception of data.
Definition: dai.h:104
@ DAI_TRIGGER_PRE_START
Optional - Pre Start the transmission / reception of data.
Definition: dai.h:110
@ DAI_TRIGGER_POST_STOP
Optional - Post Stop the transmission / reception of data.
Definition: dai.h:134
@ DAI_TRIGGER_PREPARE
Prepare the queues after underrun/overrun error has occurred.
Definition: dai.h:156
@ DAI_TRIGGER_PAUSE
Pause the transmission / reception of data.
Definition: dai.h:128
@ DAI_TRIGGER_RESET
Reset.
Definition: dai.h:162
@ DAI_DIR_RX
Definition: dai.h:66
@ DAI_DIR_BOTH
Definition: dai.h:70
@ DAI_DIR_TX
Definition: dai.h:68
static void cmd(uint32_t command)
Execute a display list command by co-processor engine.
Definition: ft8xx_reference_api.h:153
#define EINVAL
Definition: errno.h:61
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Generic Dai interface configuration options.
Definition: dai.h:202
uint32_t rate
Definition: dai.h:206
uint16_t format
Definition: dai.h:207
uint8_t channels
Definition: dai.h:205
uint8_t options
Definition: dai.h:208
enum dai_type type
Definition: dai.h:203
uint32_t dai_index
Definition: dai.h:204
size_t block_size
Definition: dai.h:210
uint8_t word_size
Definition: dai.h:209
Properties of DAI.
Definition: dai.h:182
uint32_t dma_hs_id
Definition: dai.h:185
uint32_t reg_init_delay
Definition: dai.h:186
uint32_t fifo_address
Definition: dai.h:183
uint32_t fifo_depth
Definition: dai.h:184
int stream_id
Definition: dai.h:187
int type
Definition: dai.h:215
int dma_chan_count
Definition: dai.h:220
int dma_chan_index
Definition: dai.h:219
int dma_id
Definition: dai.h:218
uint32_t walclk_rate
Definition: dai.h:214
int direction
Definition: dai.h:216
int index
Definition: dai.h:217
uint64_t walclk
Definition: dai.h:224
uint64_t sample
Definition: dai.h:225
uint32_t walclk_rate
Definition: dai.h:226
Runtime device structure (in ROM) per driver instance.
Definition: device.h:435
const void * api
Definition: device.h:441