/* * Copyright (c) 2014 Amlogic, Inc. All rights reserved. * * This source code is subject to the terms and conditions defined in the * file 'LICENSE' which is part of this source code package. * * Description: header file */ #ifndef _C_HDMI_RX_MANAGER_H_ #define _C_HDMI_RX_MANAGER_H_ #include #include #define CS_HDMIRX_DEV_PATH "/dev/hdmirx0" #define HDMI_CEC_PORT_SEQUENCE "/sys/class/cec/port_seq" #define HDMI_CEC_PORT_MAP "/sys/module/aml_media/parameters/port_map"//for kernel 5.4 & later #define HDMI_EDID_DEV_PATH "/sys/class/hdmirx/hdmirx0/edid" #define HDMI_EDID_VERSION_DEV_PATH "/sys/class/hdmirx/hdmirx0/edid_select" #define HDMI_EDID_DATA_DEV_PATH "/sys/class/hdmirx/hdmirx0/edid_with_port" #define HDMI_SET_ALLM_PARAM "/sys/class/hdmirx/hdmirx0/allm_func_ctrl" #define HDMI_VRR_ENABLED "/sys/class/hdmirx/hdmirx0/vrr_func_ctrl" #define QMS_FUNC_CTRL_PATH "/sys/class/hdmirx/hdmirx0/qms_func_ctrl" #define REAL_EDID_DATA_SIZE (256) #define REAL_EDID_DATA_SIZE_MAX (512) #define HDMI_UBOOT_EDID_VERSION "hdmi.edid.version" //bit 0:allm,1:vrr,2:qms,3:dlg #define HDMI_UBOOT_EDID_FEATURE "hdmi.edid.feature" #define TV_EDID_TYPE_256_PLUS_256 0 #define TV_EDID_TYPE_512_PLUS_512 1 #define TV_EDID_TYPE_256_PLUS_512 2 #define TV_EDID_TYPE_256_PLUS_256_PLUS_256 3 #define TV_EDID_TYPE_256_PLUS_512_PLUS_256 4 #define TV_EDID_TYPE_256_PLUS_512_PLUS_512 5 typedef enum tv_hdmi_hdcp_version_e { HDMI_HDCP_VER_14 = 0, HDMI_HDCP_VER_22 , } tv_hdmi_hdcp_version_t; typedef enum tv_hdmi_edid_version_e { HDMI_EDID_VER_14 = 0, HDMI_EDID_VER_20, HDMI_EDID_VER_AUTO, HDMI_EDID_VER_MAX, } tv_hdmi_edid_version_t; typedef enum tv_hdmi_hdcpkey_enable_e { hdcpkey_enable = 0, hdcpkey_disable , } tv_hdmi_hdcpkey_enable_t; class CHDMIRxManager { public: CHDMIRxManager(); ~CHDMIRxManager(); int HDMIRxOpenMoudle(void); int HDMIRxCloseMoudle(void); int HDMIRxDeviceIOCtl(int request, ...); int HdmiRxEdidDataSwitch(int edidCount, char *data); int HdmiRxEdidVerSwitch(int verValue); int HdmiRxHdcpVerSwitch(tv_hdmi_hdcp_version_t version); int HdmiRxHdcpOnOff(tv_hdmi_hdcpkey_enable_t flag); int GetHdmiHdcpKeyKsvInfo(struct _hdcp_ksv *msg); int CalHdmiPortCecPhysicAddr(void); int SetHdmiPortCecPhysicAddr(void); int UpdataEdidDataWithPort(int port, unsigned char *dataBuf); int HdmiEnableSPDFifo(bool enable); int HdmiRxGetSPDInfoframe(struct spd_infoframe_st* spd); void SetHDMIFeatureInit(int allmEnable, int VrrEnable, int QmsEnable); int SetAllmEnabled(bool enable); bool GetAllmEnabled(); int SetVrrEnabled(bool enable); bool GetVrrEnabled(); int SetQmsEnabled(bool enable); bool GetQmsEnabled(); int GetHdmiRxLoadEdidType(int file1Size, int file2Size, int file3Size); int HdmiRxLoadEdidDataWithPort(int port, int type, int dataSize, unsigned char dataBuf[]); int HdmiRxEdidUpdateWithPort(int port); private: int mHdmiRxDeviceId; }; #endif/*_C_HDMI_RX_MANAGER_H_*/