162306a36Sopenharmony_ci/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2019 NXP
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Author: Daniel Baluta <daniel.baluta@nxp.com>
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#ifndef __INCLUDE_SOUND_SOF_DAI_IMX_H__
962306a36Sopenharmony_ci#define __INCLUDE_SOUND_SOF_DAI_IMX_H__
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include <sound/sof/header.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci/* ESAI Configuration Request - SOF_IPC_DAI_ESAI_CONFIG */
1462306a36Sopenharmony_cistruct sof_ipc_dai_esai_params {
1562306a36Sopenharmony_ci	struct sof_ipc_hdr hdr;
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	/* MCLK */
1862306a36Sopenharmony_ci	uint16_t reserved1;
1962306a36Sopenharmony_ci	uint16_t mclk_id;
2062306a36Sopenharmony_ci	uint32_t mclk_direction;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	uint32_t mclk_rate;	/* MCLK frequency in Hz */
2362306a36Sopenharmony_ci	uint32_t fsync_rate;	/* FSYNC frequency in Hz */
2462306a36Sopenharmony_ci	uint32_t bclk_rate;	/* BCLK frequency in Hz */
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci	/* TDM */
2762306a36Sopenharmony_ci	uint32_t tdm_slots;
2862306a36Sopenharmony_ci	uint32_t rx_slots;
2962306a36Sopenharmony_ci	uint32_t tx_slots;
3062306a36Sopenharmony_ci	uint16_t tdm_slot_width;
3162306a36Sopenharmony_ci	uint16_t reserved2;	/* alignment */
3262306a36Sopenharmony_ci} __packed;
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci/* SAI Configuration Request - SOF_IPC_DAI_SAI_CONFIG */
3562306a36Sopenharmony_cistruct sof_ipc_dai_sai_params {
3662306a36Sopenharmony_ci	struct sof_ipc_hdr hdr;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	/* MCLK */
3962306a36Sopenharmony_ci	uint16_t reserved1;
4062306a36Sopenharmony_ci	uint16_t mclk_id;
4162306a36Sopenharmony_ci	uint32_t mclk_direction;
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci	uint32_t mclk_rate;	/* MCLK frequency in Hz */
4462306a36Sopenharmony_ci	uint32_t fsync_rate;	/* FSYNC frequency in Hz */
4562306a36Sopenharmony_ci	uint32_t bclk_rate;	/* BCLK frequency in Hz */
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	/* TDM */
4862306a36Sopenharmony_ci	uint32_t tdm_slots;
4962306a36Sopenharmony_ci	uint32_t rx_slots;
5062306a36Sopenharmony_ci	uint32_t tx_slots;
5162306a36Sopenharmony_ci	uint16_t tdm_slot_width;
5262306a36Sopenharmony_ci	uint16_t reserved2;	/* alignment */
5362306a36Sopenharmony_ci} __packed;
5462306a36Sopenharmony_ci#endif
55