xref: /openbmc/linux/include/sound/omap-hdmi-audio.h (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
11802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
250211be8SJyri Sarha /*
350211be8SJyri Sarha  * hdmi-audio.c -- OMAP4+ DSS HDMI audio support library
450211be8SJyri Sarha  *
5*7ed33ea6SAlexander A. Klimov  * Copyright (C) 2014 Texas Instruments Incorporated - https://www.ti.com
650211be8SJyri Sarha  *
750211be8SJyri Sarha  * Author: Jyri Sarha <jsarha@ti.com>
850211be8SJyri Sarha  */
950211be8SJyri Sarha 
1050211be8SJyri Sarha #ifndef __OMAP_HDMI_AUDIO_H__
1150211be8SJyri Sarha #define __OMAP_HDMI_AUDIO_H__
1250211be8SJyri Sarha 
135fd7447aSPeter Ujfalusi #include <linux/platform_data/omapdss.h>
145fd7447aSPeter Ujfalusi 
155fd7447aSPeter Ujfalusi struct omap_dss_audio {
165fd7447aSPeter Ujfalusi 	struct snd_aes_iec958 *iec;
175fd7447aSPeter Ujfalusi 	struct snd_cea_861_aud_if *cea;
185fd7447aSPeter Ujfalusi };
195fd7447aSPeter Ujfalusi 
2050211be8SJyri Sarha struct omap_hdmi_audio_ops {
2150211be8SJyri Sarha 	int (*audio_startup)(struct device *dev,
2250211be8SJyri Sarha 			     void (*abort_cb)(struct device *dev));
2350211be8SJyri Sarha 	int (*audio_shutdown)(struct device *dev);
2450211be8SJyri Sarha 	int (*audio_start)(struct device *dev);
2550211be8SJyri Sarha 	void (*audio_stop)(struct device *dev);
2650211be8SJyri Sarha 	int (*audio_config)(struct device *dev,
2750211be8SJyri Sarha 			    struct omap_dss_audio *dss_audio);
2850211be8SJyri Sarha };
2950211be8SJyri Sarha 
3050211be8SJyri Sarha /* HDMI audio initalization data */
3150211be8SJyri Sarha struct omap_hdmi_audio_pdata {
3250211be8SJyri Sarha 	struct device *dev;
33d20fa5a0SLaurent Pinchart 	unsigned int version;
3450211be8SJyri Sarha 	phys_addr_t audio_dma_addr;
3550211be8SJyri Sarha 
3650211be8SJyri Sarha 	const struct omap_hdmi_audio_ops *ops;
3750211be8SJyri Sarha };
3850211be8SJyri Sarha 
3950211be8SJyri Sarha #endif /* __OMAP_HDMI_AUDIO_H__ */
40