xref: /openbmc/linux/include/drm/intel_lpe_audio.h (revision c25141062a82ae8bddced1b3ce2b57a1c0efabe0)
1eef57324SJerome Anand /*
2eef57324SJerome Anand  * Copyright © 2016 Intel Corporation
3eef57324SJerome Anand  *
4eef57324SJerome Anand  * Permission is hereby granted, free of charge, to any person obtaining a
5eef57324SJerome Anand  * copy of this software and associated documentation files (the "Software"),
6eef57324SJerome Anand  * to deal in the Software without restriction, including without limitation
7eef57324SJerome Anand  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8eef57324SJerome Anand  * and/or sell copies of the Software, and to permit persons to whom the
9eef57324SJerome Anand  * Software is furnished to do so, subject to the following conditions:
10eef57324SJerome Anand  *
11eef57324SJerome Anand  * The above copyright notice and this permission notice (including the next
12eef57324SJerome Anand  * paragraph) shall be included in all copies or substantial portions of the
13eef57324SJerome Anand  * Software.
14eef57324SJerome Anand  *
15eef57324SJerome Anand  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16eef57324SJerome Anand  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17eef57324SJerome Anand  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18eef57324SJerome Anand  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19eef57324SJerome Anand  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20eef57324SJerome Anand  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21eef57324SJerome Anand  * IN THE SOFTWARE.
22eef57324SJerome Anand  */
23eef57324SJerome Anand 
24eef57324SJerome Anand #ifndef _INTEL_LPE_AUDIO_H_
25eef57324SJerome Anand #define _INTEL_LPE_AUDIO_H_
26eef57324SJerome Anand 
27eef57324SJerome Anand #include <linux/types.h>
28eef57324SJerome Anand #include <linux/spinlock_types.h>
29eef57324SJerome Anand 
30b1c01f4dSTakashi Iwai struct platform_device;
31b1c01f4dSTakashi Iwai 
32eef57324SJerome Anand #define HDMI_MAX_ELD_BYTES	128
33eef57324SJerome Anand 
34a8562e4dSVille Syrjälä struct intel_hdmi_lpe_audio_port_pdata {
35a8562e4dSVille Syrjälä 	u8 eld[HDMI_MAX_ELD_BYTES];
36a8562e4dSVille Syrjälä 	int port;
37265fa2e1SVille Syrjälä 	int pipe;
38c98ec5baSVille Syrjälä 	int ls_clock;
39b5f2be9aSPierre-Louis Bossart 	bool dp_output;
40a8562e4dSVille Syrjälä };
41a8562e4dSVille Syrjälä 
42a8562e4dSVille Syrjälä struct intel_hdmi_lpe_audio_pdata {
43*8a2d6ae1SVille Syrjälä 	struct intel_hdmi_lpe_audio_port_pdata port[3]; /* for ports B,C,D */
44*8a2d6ae1SVille Syrjälä 	int num_ports;
45*8a2d6ae1SVille Syrjälä 	int num_pipes;
46a8562e4dSVille Syrjälä 
47*8a2d6ae1SVille Syrjälä 	void (*notify_audio_lpe)(struct platform_device *pdev, int port); /* port: 0==B,1==C,2==D */
48eef57324SJerome Anand 	spinlock_t lpe_audio_slock;
49eef57324SJerome Anand };
50eef57324SJerome Anand 
51eef57324SJerome Anand #endif /* _I915_LPE_AUDIO_H_ */
52