63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-or-later */
 | |
| /*
 | |
|  * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
 | |
|  * Author: Jason Zhang <jason.zhang@rock-chips.com>
 | |
|  */
 | |
| 
 | |
| #ifndef _IT6621_EARC_H
 | |
| #define _IT6621_EARC_H
 | |
| 
 | |
| #include "it6621.h"
 | |
| 
 | |
| #define IT6621_AES3_CON_FS_64000	0x0b
 | |
| #define IT6621_AES3_CON_FS_128000	0x2b
 | |
| #define IT6621_AES3_CON_FS_256000	0x1b
 | |
| #define IT6621_AES3_CON_FS_352000	0x0d
 | |
| #define IT6621_AES3_CON_FS_384000	0x05
 | |
| #define IT6621_AES3_CON_FS_512000	0x3b
 | |
| #define IT6621_AES3_CON_FS_705000	0x2d
 | |
| #define IT6621_AES3_CON_FS_1024000	0x35
 | |
| #define IT6621_AES3_CON_FS_1411000	0x1d
 | |
| #define IT6621_AES3_CON_FS_1536000	0x15
 | |
| 
 | |
| #define IT6621_AUD_TYPE_LPCM		0
 | |
| #define IT6621_AUD_TYPE_NLPCM		1
 | |
| #define IT6621_AUD_TYPE_HBR		2
 | |
| #define IT6621_AUD_TYPE_DSD		3
 | |
| 
 | |
| /* HDMI2.1 spec. Table 9-23: Channel Status Bits 0, 1, 3, 4, and 5 */
 | |
| #define HDMI_AUDIO_FMT_UN_2CH_LPCM	0x00 /* Unencrypted 2-channel LPCM */
 | |
| #define HDMI_AUDIO_FMT_UN_MCH_LPCM	0x10 /* Unencrypted multi-channel LPCM */
 | |
| #define HDMI_AUDIO_FMT_UN_XCH_DSD	0x18 /* Unencrypted One Bit Audio */
 | |
| #define HDMI_AUDIO_FMT_UN_2CH_NLPCM	0x02 /* Unencrypted IEC 61937 */
 | |
| #define HDMI_AUDIO_FMT_EN_2CH_NLPCM	0x06 /* Encrypted IEC 61937 */
 | |
| #define HDMI_AUDIO_FMT_EN_MCH_NLPCM	0x16 /* Encrypted multi-channel LPCM */
 | |
| #define HDMI_AUDIO_FMT_EN_XCH_DSD	0x1e /* Encrypted One Bit Audio */
 | |
| 
 | |
| /*
 | |
|  * HDMI2.1 spec.
 | |
|  * Table 9-25: Channel Status Bits 44 to 47 When Multi-Channel L-PCM is
 | |
|  * Transmitted.
 | |
|  * Table 9-26: Channel Status Bits 44 to 47 When One Bit Audio is Transmitted.
 | |
|  * Table 9-27: Channel Status Bits 44 to 47 When IEC 61937 (Compressed) Audio
 | |
|  * is Transmitted.
 | |
|  */
 | |
| #define HDMI_AUDIO_LAYOUT_LPCM_2CH	0x00
 | |
| #define HDMI_AUDIO_LAYOUT_LPCM_8CH	0x07
 | |
| #define HDMI_AUDIO_LAYOUT_LPCM_16CH	0x0b
 | |
| #define HDMI_AUDIO_LAYOUT_LPCM_32CH	0x03
 | |
| #define HDMI_AUDIO_LAYOUT_NLPCM_2CH	0x00
 | |
| #define HDMI_AUDIO_LAYOUT_NLPCM_8CH	0x07
 | |
| #define HDMI_AUDIO_LAYOUT_DSD_6CH	0x05
 | |
| #define HDMI_AUDIO_LAYOUT_DSD_12CH	0x09
 | |
| 
 | |
| int it6621_set_arc_enabled(struct it6621_priv *priv, bool enabled);
 | |
| int it6621_set_earc_enabled(struct it6621_priv *priv, bool enabled);
 | |
| int it6621_set_enter_arc(struct it6621_priv *priv, bool enabled);
 | |
| int it6621_get_ddfsm_state(struct it6621_priv *priv, unsigned int *state);
 | |
| int it6621_set_channel_status(struct it6621_priv *priv);
 | |
| int it6621_earc_init(struct it6621_priv *priv);
 | |
| irqreturn_t it6621_irq(int irq, void *data);
 | |
| 
 | |
| #endif /* _IT6621_EARC_H */
 |