DAI Drivers API¶
- group sof_dai_drivers
 DAI Drivers API specification.
Defines
- 
DAI_CLOCK_IN¶
 
- 
DAI_CLOCK_OUT¶
 
- 
DAI_DIR_PLAYBACK¶
 
- 
DAI_DIR_CAPTURE¶
 
- 
DAI_NUM_SLOT_MAPS¶
 
- 
DAI_INFO_TYPE¶
 
- 
DAI_INFO_DMA_CAPS¶
 
- 
DAI_INFO_DMA_DEV¶
 
- 
DAI_FLAGS_IRQ_CB¶
 IRQ used for copy() timer.
- 
DAI_CREAT¶
 If the device does not exist it will be created.
- 
trace_dai_drv_get_tr_ctx(drv_p)¶
 
- 
trace_dai_drv_get_id(drv_p)¶
 
- 
trace_dai_drv_get_subid(drv_p)¶
 
- 
trace_dai_get_tr_ctx(dai_p)¶
 
- 
trace_dai_get_id(dai_p)¶
 
- 
trace_dai_get_subid(dai_p)¶
 
- 
dai_cl_err(drv_p, __e, ...)¶
 
- 
dai_cl_warn(drv_p, __e, ...)¶
 
- 
dai_cl_info(drv_p, __e, ...)¶
 
- 
dai_cl_dbg(drv_p, __e, ...)¶
 
- 
dai_err(dai_p, __e, ...)¶
 
- 
dai_warn(dai_p, __e, ...)¶
 
- 
dai_info(dai_p, __e, ...)¶
 
- 
dai_dbg(dai_p, __e, ...)¶
 
- 
dai_set_drvdata(dai, data)¶
 
- 
dai_get_drvdata(dai)¶
 
- 
dai_base(dai)¶
 
- 
dai_irq(dai)¶
 
- 
dai_fifo(dai, direction)¶
 
Functions
- 
struct dai_group *dai_group_get(uint32_t group_id, uint32_t flags)¶
 API to request DAI group.
Returns a DAI group for the given ID and increments the counter of DAIs in the group.
If a group for the given ID doesn’t exist, it will either return NULL or allocate a new group structure if the CREATE flag is supplied.
- Parameters
 [in] group_id: Group ID[in] flags: Flags (CREATE)
- 
void dai_group_put(struct dai_group *group)¶
 API to release DAI group.
Decrements the DAI counter inside the group.
- Parameters
 [in] group: Group
- 
int dai_init(struct sof *sof)¶
 API to initialize a platform DAI.
- Parameters
 [in] sof: Pointer to firmware main context.
- 
struct dai *dai_get(uint32_t type, uint32_t index, uint32_t flags)¶
 API to request a platform DAI.
- Parameters
 [in] type: Type of requested DAI.[in] index: Index of requested DAI.[in] flags: Flags (CREATE)
- 
static inline int dai_set_config(struct dai *dai, struct sof_ipc_dai_config *config)¶
 Digital Audio interface formatting.
- 
static inline int dai_trigger(struct dai *dai, int cmd, int direction)¶
 Digital Audio interface trigger.
- 
static inline int dai_pm_context_restore(struct dai *dai)¶
 Digital Audio interface PM context restore.
- 
static inline int dai_get_hw_params(struct dai *dai, struct sof_ipc_stream_params *params, int dir)¶
 Get Digital Audio interface stream parameters.
- 
static inline int dai_get_handshake(struct dai *dai, int direction, int stream_id)¶
 Get Digital Audio interface DMA Handshake.
- 
struct dai_ops¶
 - #include <dai.h>
DAI operations - all optional.
DAI drivers may allocate private data, which can be set with ‘dai_set_drvdata’ and retrieved with ‘dai_get_drvdata’. If a single DAI instance can have multiple DMA links and/or there is some other possibility of the same instance being used in multiple contexts at the same time, the private data should be allocated in the SOF_MEM_ZONE_SHARED.
Public Members
 
- 
struct timestamp_cfg¶
 - #include <dai.h>
 
- 
struct timestamp_data¶
 - #include <dai.h>
 
- 
struct timestamp_ops¶
 - #include <dai.h>
Public Members
- 
int (*ts_config)(struct dai *dai, struct timestamp_cfg *cfg)¶
 
- 
int (*ts_start)(struct dai *dai, struct timestamp_cfg *cfg)¶
 
- 
int (*ts_stop)(struct dai *dai, struct timestamp_cfg *cfg)¶
 
- 
int (*ts_get)(struct dai *dai, struct timestamp_cfg *cfg, struct timestamp_data *tsd)¶
 
 - 
int (*ts_config)(struct dai *dai, struct timestamp_cfg *cfg)¶
 
- 
struct dai_driver¶
 - #include <dai.h>
Public Members
- 
uint32_t type¶
 type, one of SOF_DAI_…
- 
const struct sof_uuid_entry *uid¶
 
- 
struct tr_ctx *tctx¶
 
- 
uint32_t dma_caps¶
 
- 
uint32_t dma_dev¶
 
- 
struct timestamp_ops ts_ops¶
 
 - 
uint32_t type¶
 
- 
struct dai_slot_map¶
 - #include <dai.h>
DAI slot map to audio channel.
 
- 
struct dai_plat_fifo_data¶
 - #include <dai.h>
 
- 
struct dai_plat_data¶
 - #include <dai.h>
DAI platform data.
 
- 
struct dai¶
 - #include <dai.h>
Public Members
- 
uint32_t index¶
 index
- 
spinlock_t lock¶
 locking mechanism
- 
int sref¶
 simple ref counter, guarded by lock
- 
struct dai_plat_data plat_data¶
 
- 
const struct dai_driver *drv¶
 
- 
void *priv_data¶
 
 - 
uint32_t index¶
 
- 
struct dai_type_info¶
 - #include <dai.h>
Array of DAIs grouped by type.
 
- 
struct dai_group¶
 - #include <dai.h>
DAI group information.
 
- 
struct dai_info¶
 - #include <dai.h>
Holds information about array of DAIs grouped by type.
 
- 
DAI_CLOCK_IN¶