xref: /openbmc/linux/sound/soc/codecs/hdac_hda.h (revision 608b8c36)
16bae5ea9SRakesh Ughreja /* SPDX-License-Identifier: GPL-2.0 */
26bae5ea9SRakesh Ughreja /*
36bae5ea9SRakesh Ughreja  * Copyright(c) 2015-18 Intel Corporation.
46bae5ea9SRakesh Ughreja  */
56bae5ea9SRakesh Ughreja 
66bae5ea9SRakesh Ughreja #ifndef __HDAC_HDA_H__
76bae5ea9SRakesh Ughreja #define __HDAC_HDA_H__
86bae5ea9SRakesh Ughreja 
9608b8c36SKai Vehmanen enum {
10608b8c36SKai Vehmanen 	HDAC_ANALOG_DAI_ID = 0,
11608b8c36SKai Vehmanen 	HDAC_DIGITAL_DAI_ID,
12608b8c36SKai Vehmanen 	HDAC_ALT_ANALOG_DAI_ID,
13608b8c36SKai Vehmanen 	HDAC_HDMI_0_DAI_ID,
14608b8c36SKai Vehmanen 	HDAC_HDMI_1_DAI_ID,
15608b8c36SKai Vehmanen 	HDAC_HDMI_2_DAI_ID,
16608b8c36SKai Vehmanen 	HDAC_LAST_DAI_ID = HDAC_HDMI_2_DAI_ID,
17608b8c36SKai Vehmanen };
18608b8c36SKai Vehmanen 
196bae5ea9SRakesh Ughreja struct hdac_hda_pcm {
206bae5ea9SRakesh Ughreja 	int stream_tag[2];
2103d0aa4dSRander Wang 	unsigned int format_val[2];
226bae5ea9SRakesh Ughreja };
236bae5ea9SRakesh Ughreja 
246bae5ea9SRakesh Ughreja struct hdac_hda_priv {
256bae5ea9SRakesh Ughreja 	struct hda_codec codec;
26608b8c36SKai Vehmanen 	struct hdac_hda_pcm pcm[HDAC_LAST_DAI_ID];
27608b8c36SKai Vehmanen 	bool need_display_power;
286bae5ea9SRakesh Ughreja };
296bae5ea9SRakesh Ughreja 
306bae5ea9SRakesh Ughreja #define hdac_to_hda_priv(_hdac) \
316bae5ea9SRakesh Ughreja 			container_of(_hdac, struct hdac_hda_priv, codec.core)
326bae5ea9SRakesh Ughreja #define hdac_to_hda_codec(_hdac) container_of(_hdac, struct hda_codec, core)
336bae5ea9SRakesh Ughreja 
346bae5ea9SRakesh Ughreja struct hdac_ext_bus_ops *snd_soc_hdac_hda_get_ops(void);
356bae5ea9SRakesh Ughreja 
366bae5ea9SRakesh Ughreja #endif /* __HDAC_HDA_H__ */
37