122851890Sopenharmony_ci/*
222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py,
322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants,
422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information.
522851890Sopenharmony_ci */
622851890Sopenharmony_ci#ifndef __LINUX_UAPI_SND_ASOC_H
722851890Sopenharmony_ci#define __LINUX_UAPI_SND_ASOC_H
822851890Sopenharmony_ci#include <linux/types.h>
922851890Sopenharmony_ci#include <sound/asound.h>
1022851890Sopenharmony_ci#define SND_SOC_TPLG_MAX_CHAN		8
1122851890Sopenharmony_ci#define SND_SOC_TPLG_MAX_FORMATS	16
1222851890Sopenharmony_ci#define SND_SOC_TPLG_STREAM_CONFIG_MAX  8
1322851890Sopenharmony_ci#define SND_SOC_TPLG_HW_CONFIG_MAX	8
1422851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_VOLSW		1
1522851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_VOLSW_SX	2
1622851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_VOLSW_XR_SX	3
1722851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_ENUM		4
1822851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_BYTES		5
1922851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_ENUM_VALUE	6
2022851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_RANGE		7
2122851890Sopenharmony_ci#define SND_SOC_TPLG_CTL_STROBE		8
2222851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_VOLSW		64
2322851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_ENUM_DOUBLE	65
2422851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_ENUM_VIRT		66
2522851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_ENUM_VALUE	67
2622851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_CTL_PIN		68
2722851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_INPUT		0
2822851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_OUTPUT	1
2922851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_MUX		2
3022851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_MIXER		3
3122851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_PGA		4
3222851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_OUT_DRV	5
3322851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_ADC		6
3422851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAC		7
3522851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SWITCH	8
3622851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_PRE		9
3722851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_POST		10
3822851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_AIF_IN	11
3922851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_AIF_OUT	12
4022851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAI_IN	13
4122851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAI_OUT	14
4222851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DAI_LINK	15
4322851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_BUFFER	16
4422851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SCHEDULER	17
4522851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_EFFECT	18
4622851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SIGGEN	19
4722851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_SRC		20
4822851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_ASRC		21
4922851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_ENCODER	22
5022851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_DECODER	23
5122851890Sopenharmony_ci#define SND_SOC_TPLG_DAPM_LAST		SND_SOC_TPLG_DAPM_DECODER
5222851890Sopenharmony_ci#define SND_SOC_TPLG_MAGIC		0x41536F43
5322851890Sopenharmony_ci#define SND_SOC_TPLG_NUM_TEXTS		16
5422851890Sopenharmony_ci#define SND_SOC_TPLG_ABI_VERSION	0x5
5522851890Sopenharmony_ci#define SND_SOC_TPLG_ABI_VERSION_MIN	0x4
5622851890Sopenharmony_ci#define SND_SOC_TPLG_TLV_SIZE		32
5722851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_MIXER		1
5822851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_BYTES		2
5922851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_ENUM		3
6022851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAPM_GRAPH	4
6122851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAPM_WIDGET	5
6222851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAI_LINK	6
6322851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_PCM		7
6422851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_MANIFEST	8
6522851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_CODEC_LINK	9
6622851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_BACKEND_LINK	10
6722851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_PDATA		11
6822851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_DAI		12
6922851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_MAX		SND_SOC_TPLG_TYPE_DAI
7022851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_VENDOR_FW	1000
7122851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_VENDOR_CONFIG	1001
7222851890Sopenharmony_ci#define SND_SOC_TPLG_TYPE_VENDOR_COEFF	1002
7322851890Sopenharmony_ci#define SND_SOC_TPLG_TYPEVENDOR_CODEC	1003
7422851890Sopenharmony_ci#define SND_SOC_TPLG_STREAM_PLAYBACK	0
7522851890Sopenharmony_ci#define SND_SOC_TPLG_STREAM_CAPTURE	1
7622851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_UUID	0
7722851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_STRING	1
7822851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_BOOL	2
7922851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_BYTE	3
8022851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_WORD	4
8122851890Sopenharmony_ci#define SND_SOC_TPLG_TUPLE_TYPE_SHORT	5
8222851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_RATES         (1 << 0)
8322851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_CHANNELS      (1 << 1)
8422851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_FLGBIT_SYMMETRIC_SAMPLEBITS    (1 << 2)
8522851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_CLK_GATE_UNDEFINED	0
8622851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_CLK_GATE_GATED	1
8722851890Sopenharmony_ci#define SND_SOC_TPLG_DAI_CLK_GATE_CONT		2
8822851890Sopenharmony_ci#define SND_SOC_TPLG_MCLK_CO            0
8922851890Sopenharmony_ci#define SND_SOC_TPLG_MCLK_CI            1
9022851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_I2S          1
9122851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_RIGHT_J      2
9222851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_LEFT_J       3
9322851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_DSP_A        4
9422851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_DSP_B        5
9522851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_AC97         6
9622851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_PDM          7
9722851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_MSB          SND_SOC_DAI_FORMAT_LEFT_J
9822851890Sopenharmony_ci#define SND_SOC_DAI_FORMAT_LSB          SND_SOC_DAI_FORMAT_RIGHT_J
9922851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_RATES         (1 << 0)
10022851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_CHANNELS      (1 << 1)
10122851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_SYMMETRIC_SAMPLEBITS    (1 << 2)
10222851890Sopenharmony_ci#define SND_SOC_TPLG_LNK_FLGBIT_VOICE_WAKEUP            (1 << 3)
10322851890Sopenharmony_ci#define SND_SOC_TPLG_BCLK_CM         0
10422851890Sopenharmony_ci#define SND_SOC_TPLG_BCLK_CS         1
10522851890Sopenharmony_ci#define SND_SOC_TPLG_FSYNC_CM         0
10622851890Sopenharmony_ci#define SND_SOC_TPLG_FSYNC_CS         1
10722851890Sopenharmony_cistruct snd_soc_tplg_hdr {
10822851890Sopenharmony_ci	__le32 magic;
10922851890Sopenharmony_ci	__le32 abi;
11022851890Sopenharmony_ci	__le32 version;
11122851890Sopenharmony_ci	__le32 type;
11222851890Sopenharmony_ci	__le32 size;
11322851890Sopenharmony_ci	__le32 vendor_type;
11422851890Sopenharmony_ci	__le32 payload_size;
11522851890Sopenharmony_ci	__le32 index;
11622851890Sopenharmony_ci	__le32 count;
11722851890Sopenharmony_ci} __attribute__((packed));
11822851890Sopenharmony_cistruct snd_soc_tplg_vendor_uuid_elem {
11922851890Sopenharmony_ci	__le32 token;
12022851890Sopenharmony_ci	char uuid[16];
12122851890Sopenharmony_ci} __attribute__((packed));
12222851890Sopenharmony_cistruct snd_soc_tplg_vendor_value_elem {
12322851890Sopenharmony_ci	__le32 token;
12422851890Sopenharmony_ci	__le32 value;
12522851890Sopenharmony_ci} __attribute__((packed));
12622851890Sopenharmony_cistruct snd_soc_tplg_vendor_string_elem {
12722851890Sopenharmony_ci	__le32 token;
12822851890Sopenharmony_ci	char string[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
12922851890Sopenharmony_ci} __attribute__((packed));
13022851890Sopenharmony_cistruct snd_soc_tplg_vendor_array {
13122851890Sopenharmony_ci	__le32 size;
13222851890Sopenharmony_ci	__le32 type;
13322851890Sopenharmony_ci	__le32 num_elems;
13422851890Sopenharmony_ci	union {
13522851890Sopenharmony_ci		struct snd_soc_tplg_vendor_uuid_elem uuid[0];
13622851890Sopenharmony_ci		struct snd_soc_tplg_vendor_value_elem value[0];
13722851890Sopenharmony_ci		struct snd_soc_tplg_vendor_string_elem string[0];
13822851890Sopenharmony_ci	};
13922851890Sopenharmony_ci} __attribute__((packed));
14022851890Sopenharmony_cistruct snd_soc_tplg_private {
14122851890Sopenharmony_ci	__le32 size;
14222851890Sopenharmony_ci	union {
14322851890Sopenharmony_ci		char data[0];
14422851890Sopenharmony_ci		struct snd_soc_tplg_vendor_array array[0];
14522851890Sopenharmony_ci	};
14622851890Sopenharmony_ci} __attribute__((packed));
14722851890Sopenharmony_cistruct snd_soc_tplg_tlv_dbscale {
14822851890Sopenharmony_ci	__le32 min;
14922851890Sopenharmony_ci	__le32 step;
15022851890Sopenharmony_ci	__le32 mute;
15122851890Sopenharmony_ci} __attribute__((packed));
15222851890Sopenharmony_cistruct snd_soc_tplg_ctl_tlv {
15322851890Sopenharmony_ci	__le32 size;
15422851890Sopenharmony_ci	__le32 type;
15522851890Sopenharmony_ci	union {
15622851890Sopenharmony_ci		__le32 data[SND_SOC_TPLG_TLV_SIZE];
15722851890Sopenharmony_ci		struct snd_soc_tplg_tlv_dbscale scale;
15822851890Sopenharmony_ci	};
15922851890Sopenharmony_ci} __attribute__((packed));
16022851890Sopenharmony_cistruct snd_soc_tplg_channel {
16122851890Sopenharmony_ci	__le32 size;
16222851890Sopenharmony_ci	__le32 reg;
16322851890Sopenharmony_ci	__le32 shift;
16422851890Sopenharmony_ci	__le32 id;
16522851890Sopenharmony_ci} __attribute__((packed));
16622851890Sopenharmony_cistruct snd_soc_tplg_io_ops {
16722851890Sopenharmony_ci	__le32 get;
16822851890Sopenharmony_ci	__le32 put;
16922851890Sopenharmony_ci	__le32 info;
17022851890Sopenharmony_ci} __attribute__((packed));
17122851890Sopenharmony_cistruct snd_soc_tplg_ctl_hdr {
17222851890Sopenharmony_ci	__le32 size;
17322851890Sopenharmony_ci	__le32 type;
17422851890Sopenharmony_ci	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
17522851890Sopenharmony_ci	__le32 access;
17622851890Sopenharmony_ci	struct snd_soc_tplg_io_ops ops;
17722851890Sopenharmony_ci	struct snd_soc_tplg_ctl_tlv tlv;
17822851890Sopenharmony_ci} __attribute__((packed));
17922851890Sopenharmony_cistruct snd_soc_tplg_stream_caps {
18022851890Sopenharmony_ci	__le32 size;
18122851890Sopenharmony_ci	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
18222851890Sopenharmony_ci	__le64 formats;
18322851890Sopenharmony_ci	__le32 rates;
18422851890Sopenharmony_ci	__le32 rate_min;
18522851890Sopenharmony_ci	__le32 rate_max;
18622851890Sopenharmony_ci	__le32 channels_min;
18722851890Sopenharmony_ci	__le32 channels_max;
18822851890Sopenharmony_ci	__le32 periods_min;
18922851890Sopenharmony_ci	__le32 periods_max;
19022851890Sopenharmony_ci	__le32 period_size_min;
19122851890Sopenharmony_ci	__le32 period_size_max;
19222851890Sopenharmony_ci	__le32 buffer_size_min;
19322851890Sopenharmony_ci	__le32 buffer_size_max;
19422851890Sopenharmony_ci	__le32 sig_bits;
19522851890Sopenharmony_ci} __attribute__((packed));
19622851890Sopenharmony_cistruct snd_soc_tplg_stream {
19722851890Sopenharmony_ci	__le32 size;
19822851890Sopenharmony_ci	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
19922851890Sopenharmony_ci	__le64 format;
20022851890Sopenharmony_ci	__le32 rate;
20122851890Sopenharmony_ci	__le32 period_bytes;
20222851890Sopenharmony_ci	__le32 buffer_bytes;
20322851890Sopenharmony_ci	__le32 channels;
20422851890Sopenharmony_ci} __attribute__((packed));
20522851890Sopenharmony_cistruct snd_soc_tplg_hw_config {
20622851890Sopenharmony_ci	__le32 size;
20722851890Sopenharmony_ci	__le32 id;
20822851890Sopenharmony_ci	__le32 fmt;
20922851890Sopenharmony_ci	__u8 clock_gated;
21022851890Sopenharmony_ci	__u8 invert_bclk;
21122851890Sopenharmony_ci	__u8 invert_fsync;
21222851890Sopenharmony_ci	__u8 bclk_master;
21322851890Sopenharmony_ci	__u8 fsync_master;
21422851890Sopenharmony_ci	__u8 mclk_direction;
21522851890Sopenharmony_ci	__le16 reserved;
21622851890Sopenharmony_ci	__le32 mclk_rate;
21722851890Sopenharmony_ci	__le32 bclk_rate;
21822851890Sopenharmony_ci	__le32 fsync_rate;
21922851890Sopenharmony_ci	__le32 tdm_slots;
22022851890Sopenharmony_ci	__le32 tdm_slot_width;
22122851890Sopenharmony_ci	__le32 tx_slots;
22222851890Sopenharmony_ci	__le32 rx_slots;
22322851890Sopenharmony_ci	__le32 tx_channels;
22422851890Sopenharmony_ci	__le32 tx_chanmap[SND_SOC_TPLG_MAX_CHAN];
22522851890Sopenharmony_ci	__le32 rx_channels;
22622851890Sopenharmony_ci	__le32 rx_chanmap[SND_SOC_TPLG_MAX_CHAN];
22722851890Sopenharmony_ci} __attribute__((packed));
22822851890Sopenharmony_cistruct snd_soc_tplg_manifest {
22922851890Sopenharmony_ci	__le32 size;
23022851890Sopenharmony_ci	__le32 control_elems;
23122851890Sopenharmony_ci	__le32 widget_elems;
23222851890Sopenharmony_ci	__le32 graph_elems;
23322851890Sopenharmony_ci	__le32 pcm_elems;
23422851890Sopenharmony_ci	__le32 dai_link_elems;
23522851890Sopenharmony_ci	__le32 dai_elems;
23622851890Sopenharmony_ci	__le32 reserved[20];
23722851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
23822851890Sopenharmony_ci} __attribute__((packed));
23922851890Sopenharmony_cistruct snd_soc_tplg_mixer_control {
24022851890Sopenharmony_ci	struct snd_soc_tplg_ctl_hdr hdr;
24122851890Sopenharmony_ci	__le32 size;
24222851890Sopenharmony_ci	__le32 min;
24322851890Sopenharmony_ci	__le32 max;
24422851890Sopenharmony_ci	__le32 platform_max;
24522851890Sopenharmony_ci	__le32 invert;
24622851890Sopenharmony_ci	__le32 num_channels;
24722851890Sopenharmony_ci	struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
24822851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
24922851890Sopenharmony_ci} __attribute__((packed));
25022851890Sopenharmony_cistruct snd_soc_tplg_enum_control {
25122851890Sopenharmony_ci	struct snd_soc_tplg_ctl_hdr hdr;
25222851890Sopenharmony_ci	__le32 size;
25322851890Sopenharmony_ci	__le32 num_channels;
25422851890Sopenharmony_ci	struct snd_soc_tplg_channel channel[SND_SOC_TPLG_MAX_CHAN];
25522851890Sopenharmony_ci	__le32 items;
25622851890Sopenharmony_ci	__le32 mask;
25722851890Sopenharmony_ci	__le32 count;
25822851890Sopenharmony_ci	char texts[SND_SOC_TPLG_NUM_TEXTS][SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
25922851890Sopenharmony_ci	__le32 values[SND_SOC_TPLG_NUM_TEXTS * SNDRV_CTL_ELEM_ID_NAME_MAXLEN / 4];
26022851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
26122851890Sopenharmony_ci} __attribute__((packed));
26222851890Sopenharmony_cistruct snd_soc_tplg_bytes_control {
26322851890Sopenharmony_ci	struct snd_soc_tplg_ctl_hdr hdr;
26422851890Sopenharmony_ci	__le32 size;
26522851890Sopenharmony_ci	__le32 max;
26622851890Sopenharmony_ci	__le32 mask;
26722851890Sopenharmony_ci	__le32 base;
26822851890Sopenharmony_ci	__le32 num_regs;
26922851890Sopenharmony_ci	struct snd_soc_tplg_io_ops ext_ops;
27022851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
27122851890Sopenharmony_ci} __attribute__((packed));
27222851890Sopenharmony_cistruct snd_soc_tplg_dapm_graph_elem {
27322851890Sopenharmony_ci	char sink[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
27422851890Sopenharmony_ci	char control[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
27522851890Sopenharmony_ci	char source[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
27622851890Sopenharmony_ci} __attribute__((packed));
27722851890Sopenharmony_cistruct snd_soc_tplg_dapm_widget {
27822851890Sopenharmony_ci	__le32 size;
27922851890Sopenharmony_ci	__le32 id;
28022851890Sopenharmony_ci	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
28122851890Sopenharmony_ci	char sname[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
28222851890Sopenharmony_ci	__le32 reg;
28322851890Sopenharmony_ci	__le32 shift;
28422851890Sopenharmony_ci	__le32 mask;
28522851890Sopenharmony_ci	__le32 subseq;
28622851890Sopenharmony_ci	__le32 invert;
28722851890Sopenharmony_ci	__le32 ignore_suspend;
28822851890Sopenharmony_ci	__le16 event_flags;
28922851890Sopenharmony_ci	__le16 event_type;
29022851890Sopenharmony_ci	__le32 num_kcontrols;
29122851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
29222851890Sopenharmony_ci
29322851890Sopenharmony_ci} __attribute__((packed));
29422851890Sopenharmony_cistruct snd_soc_tplg_pcm {
29522851890Sopenharmony_ci	__le32 size;
29622851890Sopenharmony_ci	char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
29722851890Sopenharmony_ci	char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
29822851890Sopenharmony_ci	__le32 pcm_id;
29922851890Sopenharmony_ci	__le32 dai_id;
30022851890Sopenharmony_ci	__le32 playback;
30122851890Sopenharmony_ci	__le32 capture;
30222851890Sopenharmony_ci	__le32 compress;
30322851890Sopenharmony_ci	struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
30422851890Sopenharmony_ci	__le32 num_streams;
30522851890Sopenharmony_ci	struct snd_soc_tplg_stream_caps caps[2];
30622851890Sopenharmony_ci	__le32 flag_mask;
30722851890Sopenharmony_ci	__le32 flags;
30822851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
30922851890Sopenharmony_ci} __attribute__((packed));
31022851890Sopenharmony_cistruct snd_soc_tplg_link_config {
31122851890Sopenharmony_ci	__le32 size;
31222851890Sopenharmony_ci	__le32 id;
31322851890Sopenharmony_ci	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
31422851890Sopenharmony_ci	char stream_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
31522851890Sopenharmony_ci	struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
31622851890Sopenharmony_ci	__le32 num_streams;
31722851890Sopenharmony_ci	struct snd_soc_tplg_hw_config hw_config[SND_SOC_TPLG_HW_CONFIG_MAX];
31822851890Sopenharmony_ci	__le32 num_hw_configs;
31922851890Sopenharmony_ci	__le32 default_hw_config_id;
32022851890Sopenharmony_ci	__le32 flag_mask;
32122851890Sopenharmony_ci	__le32 flags;
32222851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
32322851890Sopenharmony_ci} __attribute__((packed));
32422851890Sopenharmony_cistruct snd_soc_tplg_dai {
32522851890Sopenharmony_ci	__le32 size;
32622851890Sopenharmony_ci	char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
32722851890Sopenharmony_ci	__le32 dai_id;
32822851890Sopenharmony_ci	__le32 playback;
32922851890Sopenharmony_ci	__le32 capture;
33022851890Sopenharmony_ci	struct snd_soc_tplg_stream_caps caps[2];
33122851890Sopenharmony_ci	__le32 flag_mask;
33222851890Sopenharmony_ci	__le32 flags;
33322851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
33422851890Sopenharmony_ci} __attribute__((packed));
33522851890Sopenharmony_cistruct snd_soc_tplg_manifest_v4 {
33622851890Sopenharmony_ci	__le32 size;
33722851890Sopenharmony_ci	__le32 control_elems;
33822851890Sopenharmony_ci	__le32 widget_elems;
33922851890Sopenharmony_ci	__le32 graph_elems;
34022851890Sopenharmony_ci	__le32 pcm_elems;
34122851890Sopenharmony_ci	__le32 dai_link_elems;
34222851890Sopenharmony_ci	struct snd_soc_tplg_private priv;
34322851890Sopenharmony_ci} __packed;
34422851890Sopenharmony_cistruct snd_soc_tplg_stream_caps_v4 {
34522851890Sopenharmony_ci	__le32 size;
34622851890Sopenharmony_ci	char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
34722851890Sopenharmony_ci	__le64 formats;
34822851890Sopenharmony_ci	__le32 rates;
34922851890Sopenharmony_ci	__le32 rate_min;
35022851890Sopenharmony_ci	__le32 rate_max;
35122851890Sopenharmony_ci	__le32 channels_min;
35222851890Sopenharmony_ci	__le32 channels_max;
35322851890Sopenharmony_ci	__le32 periods_min;
35422851890Sopenharmony_ci	__le32 periods_max;
35522851890Sopenharmony_ci	__le32 period_size_min;
35622851890Sopenharmony_ci	__le32 period_size_max;
35722851890Sopenharmony_ci	__le32 buffer_size_min;
35822851890Sopenharmony_ci	__le32 buffer_size_max;
35922851890Sopenharmony_ci} __packed;
36022851890Sopenharmony_cistruct snd_soc_tplg_pcm_v4 {
36122851890Sopenharmony_ci	__le32 size;
36222851890Sopenharmony_ci	char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
36322851890Sopenharmony_ci	char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
36422851890Sopenharmony_ci	__le32 pcm_id;
36522851890Sopenharmony_ci	__le32 dai_id;
36622851890Sopenharmony_ci	__le32 playback;
36722851890Sopenharmony_ci	__le32 capture;
36822851890Sopenharmony_ci	__le32 compress;
36922851890Sopenharmony_ci	struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
37022851890Sopenharmony_ci	__le32 num_streams;
37122851890Sopenharmony_ci	struct snd_soc_tplg_stream_caps_v4 caps[2];
37222851890Sopenharmony_ci} __packed;
37322851890Sopenharmony_cistruct snd_soc_tplg_link_config_v4 {
37422851890Sopenharmony_ci	__le32 size;
37522851890Sopenharmony_ci	__le32 id;
37622851890Sopenharmony_ci	struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
37722851890Sopenharmony_ci	__le32 num_streams;
37822851890Sopenharmony_ci} __packed;
37922851890Sopenharmony_ci#endif
380