#ifndef __HDMI_HW_H__ #define __HDMI_HW_H__ #include "drv_types.h" #include "reg_hdmirx_def.h" #include "reg_cec_def.h" #include "reg_hdmirx_cbus_def.h" #include "hdmi_infoframe_api.h" #define IRQ_HDMI 35 #define HDMIRXDRV_DEVNAME "/dev/hdmirx" /* HDMIRX Interrupt start */ #define INTR_AVI_infoframe 0x00000001 #define INTR_ACP_packets 0x00000002 #define INTR_Audio_infoframe 0x00000004 #define INTR_ISRC1_packets 0x00000008 #define INTR_ISRC2_packets 0x00000010 #define INTR_SPD_infoframe 0x00000020 #define INTR_MPEG_source_infoframe 0x00000040 #define INTR_AV_Mute 0x00000080 #define INTR_Clear_AV_Mute 0x00000100 #define INTR_Buffer_Change_Pulse 0x00000200 #define INTR_Channel_Status_Lock_Pulse 0x00000400 #define INTR_Channel_Status_Unlock_Pulse 0x00000800 #define INTR_Inactive_to_Active 0x00001000 #define INTR_Active_to_Inactive 0x00002000 #define INTR_VSI_packets 0x00004000 #define INTR_Layout_change 0x00008000 #define INTR_HDCP_Key_Request 0x00010000 #define INTR_hdmi_enable 0x00020000 #define INTR_dvi_enable 0x00040000 #define INTR_audio_sample_coming 0x00080000 #define INTR_HBR_audio_sample_coming 0x00100000 #define INTR_reserved_intr_21 0x00200000 #define INTR_deep_color_mode_change 0x00400000 #define INTR_hdcp_try_intr 0x00800000 #define INTR_GamutBoundaryData 0x01000000 #define INTR_Mode_Change 0x02000000 #define INTR_PLLLOCK 0x04000000 //same as INTR_phy_PLLLOCK #define INTR_Ctrl_First_Pulse 0x08000000 //one channel symbol lock #define INTR_phy_PLLRSTJ 0x10000000 #define INTR_phy_IN_RANGE 0x20000000 #define INTR_phy_CDRRSTJ 0x40000000 #define INTR_phy_PLLLOCK 0x80000000 #define INTR_ALL 0xFFFFFFFF #ifdef CONFIG_CHIP_512L //#define USE_HW_ADAPTIVE_EQ #ifdef USE_HW_ADAPTIVE_EQ #define INTR_Phy_Ovsp_int 0x00800000 #endif #endif /* HDMIRX Interrupt end */ //**************************************************************************** // // Function : HDMI_RegisterWrite // Params : ulRegisterName -address of the index register // ulValue - value to program to the given bits of the register // Description: Sets the given bits of the given index register to the given value // ulRegisterName data format: TTTT WWWW WWSS SSSS AAAA AAAA AAAA AAAA // 0:reserved // T:register type 4=HDMIRX_register (offset 0xBE0E) // W:register used width // S:register start bit // A:register address // Returns : void //**************************************************************************** void HDMI_RegisterWrite(UINT32 ulRegisterName, UINT32 ulValue); //**************************************************************************** // // Function : HDMI_RegisterRead // Params : ulRegisterName -address of the index register // Description: read the given bits of the given index register to the value // ulRegisterName data format: TTTT WWWW WWSS SSSS AAAA AAAA AAAA AAAA // 0:reserved // T:register type 4=HDMIRX_register (offset 0xBE0E) // W:register used width // S:register start bit // A:register address // Returns : register data //**************************************************************************** UINT32 HDMI_RegisterRead(UINT32 ulRegisterName); void HDMI_Interrupt_Enable(UINT32 ulIntr); void HDMI_Interrupt_Disable(UINT32 ulIntr); void HDMI_PHY_Enable(BOOL fEn); void HDMI_PLL_Init(void); void HDMI_SetPLL_ByFreq(void); void HDMI_MHL_SetPLL_ByFreq(void); void HDMI_Reset_HDMI_PLL(void); //set force to HDMI mode, (set 1: force HDMI mode) void HDMI_MHL_RxSense_Term_Debug(BOOL fEn); void HDMI_MHL_CABLE_IN(BOOL fIn); void HDMI_MHL_CTS(BOOL fIn); UINT8 HDMI_Get_SPD_INFOFRAME(struct hdmi_spd_infoframe *frame); //------------------------------------------------------------------------------ // Function: DrvHDMIPortSelectBitsGet // Description: Reads the HDMI selected port(s)bit-field. // Parameters: None // Returns: HDMI selected port(s)bit-field. // //------------------------------------------------------------------------------ UINT8 DrvHDMIPortSelectBitsGet(void); #ifdef USE_HW_ADAPTIVE_EQ void HDMI_Adaptive_EQ_Init(void); #endif #endif /* __HDMI_HW_H__ */