11bd4fe43Sopenharmony_ci/* 21bd4fe43Sopenharmony_ci * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 31bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License. 51bd4fe43Sopenharmony_ci * You may obtain a copy of the License at 61bd4fe43Sopenharmony_ci * 71bd4fe43Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81bd4fe43Sopenharmony_ci * 91bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and 131bd4fe43Sopenharmony_ci * limitations under the License. 141bd4fe43Sopenharmony_ci */ 151bd4fe43Sopenharmony_ci#ifndef __HI_COMM_HDMI_H__ 161bd4fe43Sopenharmony_ci#define __HI_COMM_HDMI_H__ 171bd4fe43Sopenharmony_ci 181bd4fe43Sopenharmony_ci#include "hi_type.h" 191bd4fe43Sopenharmony_ci#ifndef HDMI_BUILD_IN_BOOT 201bd4fe43Sopenharmony_ci#include "hi_errno.h" 211bd4fe43Sopenharmony_ci#endif 221bd4fe43Sopenharmony_ci#include "hi_common.h" 231bd4fe43Sopenharmony_ci#include "hi_comm_video.h" 241bd4fe43Sopenharmony_ci 251bd4fe43Sopenharmony_ci#define HI_HDMI_MAX_AUDIO_CAP_COUNT 16 261bd4fe43Sopenharmony_ci#define HI_HDMI_MAX_SAMPE_RATE_NUM 8 271bd4fe43Sopenharmony_ci#define HI_HDMI_MAX_BIT_DEPTH_NUM 6 281bd4fe43Sopenharmony_ci#define HI_HDMI_EDID_RAW_DATA_LEN 512 291bd4fe43Sopenharmony_ci/* user data len:31 - 4(pkt header) - 5(4K- the length must be 0x05) */ 301bd4fe43Sopenharmony_ci#define HI_HDMI_VENDOR_USER_DATA_MAX_LEN 22 311bd4fe43Sopenharmony_ci#define HI_HDMI_DETAIL_TIMING_MAX 10 321bd4fe43Sopenharmony_ci#define HI_HDMI_VENDOR_NAME_SIZE 8 331bd4fe43Sopenharmony_ci#define HI_HDMI_VENDOR_DESC_SIZE 16 341bd4fe43Sopenharmony_ci 351bd4fe43Sopenharmony_ci#ifdef __cplusplus 361bd4fe43Sopenharmony_ci#if __cplusplus 371bd4fe43Sopenharmony_ciextern "C" { 381bd4fe43Sopenharmony_ci#endif 391bd4fe43Sopenharmony_ci#endif 401bd4fe43Sopenharmony_ci 411bd4fe43Sopenharmony_citypedef enum hiHDMI_VIDEO_FMT_E { 421bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080P_60 = 0, 431bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080P_50, 441bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080P_30, 451bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080P_25, 461bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080P_24, 471bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080i_60, 481bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1080i_50, 491bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_720P_60, 501bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_720P_50, 511bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_576P_50, 521bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_480P_60, 531bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_PAL, 541bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_PAL_N, 551bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_PAL_Nc, 561bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_NTSC, 571bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_NTSC_J, 581bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_NTSC_PAL_M, 591bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_SECAM_SIN, 601bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_SECAM_COS, 611bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_861D_640X480_60, 621bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_800X600_60, 631bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1024X768_60, 641bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1280X720_60, 651bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1280X800_60, 661bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1280X1024_60, 671bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1366X768_60, 681bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1440X900_60, 691bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1440X900_60_RB, 701bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1600X900_60_RB, 711bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1600X1200_60, 721bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1680X1050_60, 731bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1920X1080_60, 741bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_1920X1200_60, 751bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_2048X1152_60, 761bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_2560x1440_30, 771bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_2560x1440_60, 781bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_2560x1600_60, 791bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_1920x2160_30, 801bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_3840X2160P_24, 811bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_3840X2160P_25, 821bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_3840X2160P_30, 831bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_3840X2160P_50, 841bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_3840X2160P_60, 851bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_4096X2160P_24, 861bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_4096X2160P_25, 871bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_4096X2160P_30, 881bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_4096X2160P_50, 891bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_4096X2160P_60, 901bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_3840X2160P_120, 911bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_4096X2160P_120, 921bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_7680X4320P_30, 931bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_VESA_CUSTOMER_DEFINE, 941bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_BUTT 951bd4fe43Sopenharmony_ci} HI_HDMI_VIDEO_FMT_E; 961bd4fe43Sopenharmony_ci 971bd4fe43Sopenharmony_citypedef enum hiHDMI_PIC_ASPECT_RATIO_E { 981bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASP_RATIO_NO_DATA, /* Aspect Ratio unknown */ 991bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASP_RATIO_4TO3, /* Aspect Ratio 4:3 */ 1001bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASP_RATIO_16TO9, /* Aspect Ratio 16:9 */ 1011bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASP_RATIO_64TO27, 1021bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASP_RATIO_256TO135, 1031bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASP_RATIO_RESERVED 1041bd4fe43Sopenharmony_ci} HI_HDMI_PIC_ASPECT_RATIO_E; 1051bd4fe43Sopenharmony_ci 1061bd4fe43Sopenharmony_citypedef enum hiHDMI_ACT_ASPECT_RATIO_E { 1071bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_RESERVED_0, 1081bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_RESERVED_1, 1091bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_16TO9_TOP, 1101bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_14TO9_TOP, 1111bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_16TO9_BOX_CENTER, 1121bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_RESERVED_5, 1131bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_RESERVED_6, 1141bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_RESERVED_7, 1151bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_SAME_PIC, 1161bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_4TO3_CENTER, 1171bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_16TO9_CENTER, 1181bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_14TO9_CENTER, 1191bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_RESERVED_12, 1201bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_4TO3_14_9, 1211bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_16TO9_14_9, 1221bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASP_RATIO_16TO9_4_3 1231bd4fe43Sopenharmony_ci} HI_HDMI_ACT_ASPECT_RATIO_E; 1241bd4fe43Sopenharmony_ci 1251bd4fe43Sopenharmony_citypedef enum hiHDMI_SAMPLE_RATE_E { 1261bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_UNKNOWN, /* unknown sample rate */ 1271bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_8K = 8000, /* 8K sample rate */ 1281bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_11K = 11025, /* 11.025K sample rate */ 1291bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_12K = 12000, /* 12K sample rate */ 1301bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_16K = 16000, /* 16K sample rate */ 1311bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_22K = 22050, /* 22.050K sample rate */ 1321bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_24K = 24000, /* 24K sample rate */ 1331bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_32K = 32000, /* 32K sample rate */ 1341bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_44K = 44100, /* 44.1K sample rate */ 1351bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_48K = 48000, /* 48K sample rate */ 1361bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_88K = 88200, /* 88.2K sample rate */ 1371bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_96K = 96000, /* 96K sample rate */ 1381bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_176K = 176400, /* 176K sample rate */ 1391bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_192K = 192000, /* 192K sample rate */ 1401bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_768K = 768000, /* 768K sample rate */ 1411bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_BUTT 1421bd4fe43Sopenharmony_ci} HI_HDMI_SAMPLE_RATE_E; 1431bd4fe43Sopenharmony_ci 1441bd4fe43Sopenharmony_citypedef enum hiHDMI_AUDIO_FORMAT_CODE_E { 1451bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_RESERVED, /* Audio coding type, refer stream,default type */ 1461bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_PCM, /* Audio coding PCM type */ 1471bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_AC3, /* Audio coding AC3 type */ 1481bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_MPEG1, /* Audio coding MPEG1 type */ 1491bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_MP3, /* Audio coding MP3 type */ 1501bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_MPEG2, /* Audio coding MPEG2 type */ 1511bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_AAC, /* Audio coding AAC type */ 1521bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_DTS, /* Audio coding DTS type */ 1531bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_ATRAC, /* Audio coding ATRAC type */ 1541bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_ONE_BIT, /* Audio coding ONE BIT AUDIO type */ 1551bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_DDP, /* Audio coding DDPLUS type */ 1561bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_DTS_HD, /* Audio coding DTS HD type */ 1571bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_MAT, /* Audio coding MAT type */ 1581bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_DST, /* Audio coding DST type */ 1591bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_WMA_PRO, /* Audio coding WMA PRO type */ 1601bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_BUTT 1611bd4fe43Sopenharmony_ci} HI_HDMI_AUDIO_FORMAT_CODE_E; 1621bd4fe43Sopenharmony_ci 1631bd4fe43Sopenharmony_citypedef enum hiHDMI_BIT_DEPTH_E { 1641bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_UNKNOWN, /* unknown bit width */ 1651bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_8 = 8, /* 8 bits width */ 1661bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_16 = 16, /* 16 bits width */ 1671bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_18 = 18, /* 18 bits width */ 1681bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_20 = 20, /* 20 bits width */ 1691bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_24 = 24, /* 24 bits width */ 1701bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_32 = 32, /* 32 bits width */ 1711bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_BUTT 1721bd4fe43Sopenharmony_ci} HI_HDMI_BIT_DEPTH_E; 1731bd4fe43Sopenharmony_ci 1741bd4fe43Sopenharmony_citypedef enum hiHDMI_SND_INTERFACE_E { 1751bd4fe43Sopenharmony_ci HI_HDMI_SND_INTERFACE_I2S, /* I2S(Inter-IC Sound) */ 1761bd4fe43Sopenharmony_ci HI_HDMI_SND_INTERFACE_SPDIF, /* SPDIF(Sony/Philips Digital Interface) */ 1771bd4fe43Sopenharmony_ci HI_HDMI_SND_INTERFACE_HBR, /* SPDIF(Sony/Philips Digital Interface) */ 1781bd4fe43Sopenharmony_ci HI_HDMI_SND_INTERFACE_BUTT 1791bd4fe43Sopenharmony_ci} HI_HDMI_SND_INTERFACE_E; 1801bd4fe43Sopenharmony_ci 1811bd4fe43Sopenharmony_citypedef enum hiHDMI_ID_E { 1821bd4fe43Sopenharmony_ci HI_HDMI_ID_0, 1831bd4fe43Sopenharmony_ci HI_HDMI_ID_BUTT 1841bd4fe43Sopenharmony_ci} HI_HDMI_ID_E; 1851bd4fe43Sopenharmony_ci 1861bd4fe43Sopenharmony_citypedef enum hiHDMI_EVENT_TYPE_E { 1871bd4fe43Sopenharmony_ci HI_HDMI_EVENT_HOTPLUG = 0x10, /* HDMI hot-plug event */ 1881bd4fe43Sopenharmony_ci HI_HDMI_EVENT_NO_PLUG, /* HDMI cable disconnection event */ 1891bd4fe43Sopenharmony_ci HI_HDMI_EVENT_EDID_FAIL, /* HDMI EDID read failure event */ 1901bd4fe43Sopenharmony_ci HI_HDMI_EVENT_HDCP_FAIL, /* HDCP verification failure event */ 1911bd4fe43Sopenharmony_ci HI_HDMI_EVENT_HDCP_SUCCESS, /* HDCP verification success event */ 1921bd4fe43Sopenharmony_ci HI_HDMI_EVENT_HDCP_USERSETTING = 0x17, /* HDMI reset event,user should re-verification HDCP */ 1931bd4fe43Sopenharmony_ci HI_HDMI_EVENT_BUTT 1941bd4fe43Sopenharmony_ci} HI_HDMI_EVENT_TYPE_E; 1951bd4fe43Sopenharmony_ci 1961bd4fe43Sopenharmony_citypedef enum hiHDMI_VIDEO_MODE { 1971bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_RGB444, 1981bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_YCBCR422, 1991bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_YCBCR444, 2001bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_YCBCR420, 2011bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_BUTT 2021bd4fe43Sopenharmony_ci} HI_HDMI_VIDEO_MODE_E; 2031bd4fe43Sopenharmony_ci 2041bd4fe43Sopenharmony_ci/* Color Component Sample format and chroma sampling format enum,see EIA-CEA-861-D/F */ 2051bd4fe43Sopenharmony_citypedef enum hiHDMI_COLOR_SPACE_E { 2061bd4fe43Sopenharmony_ci HI_HDMI_COLOR_SPACE_RGB444, 2071bd4fe43Sopenharmony_ci HI_HDMI_COLOR_SPACE_YCBCR422, 2081bd4fe43Sopenharmony_ci HI_HDMI_COLOR_SPACE_YCBCR444, 2091bd4fe43Sopenharmony_ci /* following is new featrue of CEA-861-F */ 2101bd4fe43Sopenharmony_ci HI_HDMI_COLOR_SPACE_YCBCR420 2111bd4fe43Sopenharmony_ci} HI_HDMI_COLOR_SPACE_E; 2121bd4fe43Sopenharmony_ci 2131bd4fe43Sopenharmony_citypedef enum hiHDMI_DEEP_COLOR_E { 2141bd4fe43Sopenharmony_ci HI_HDMI_DEEP_COLOR_24BIT, /* HDMI Deep Color 24bit mode */ 2151bd4fe43Sopenharmony_ci HI_HDMI_DEEP_COLOR_30BIT, /* HDMI Deep Color 30bit mode */ 2161bd4fe43Sopenharmony_ci HI_HDMI_DEEP_COLOR_36BIT, /* HDMI Deep Color 36bit mode */ 2171bd4fe43Sopenharmony_ci HI_HDMI_DEEP_COLOR_OFF = 0xff, /* HDMI Deep Color OFF mode(24bit). */ 2181bd4fe43Sopenharmony_ci HI_HDMI_DEEP_COLOR_BUTT 2191bd4fe43Sopenharmony_ci} HI_HDMI_DEEP_COLOR_E; 2201bd4fe43Sopenharmony_ci 2211bd4fe43Sopenharmony_citypedef enum hiHDMI_BARINFO_E { 2221bd4fe43Sopenharmony_ci HDMI_BAR_INFO_NOT_VALID, /* Bar Data not valid */ 2231bd4fe43Sopenharmony_ci HDMI_BAR_INFO_V, /* Vertical bar data valid */ 2241bd4fe43Sopenharmony_ci HDMI_BAR_INFO_H, /* Horizental bar data valid */ 2251bd4fe43Sopenharmony_ci HDMI_BAR_INFO_VH /* Horizental and Vertical bar data valid */ 2261bd4fe43Sopenharmony_ci} HI_HDMI_BARINFO_E; 2271bd4fe43Sopenharmony_ci 2281bd4fe43Sopenharmony_citypedef enum hiHDMI_SCANINFO_E { 2291bd4fe43Sopenharmony_ci HDMI_SCAN_INFO_NO_DATA, /* No Scan information */ 2301bd4fe43Sopenharmony_ci HDMI_SCAN_INFO_OVERSCANNED, /* Scan information, Overscanned (for television) */ 2311bd4fe43Sopenharmony_ci HDMI_SCAN_INFO_UNDERSCANNED, /* Scan information, Underscanned (for computer) */ 2321bd4fe43Sopenharmony_ci HDMI_SCAN_INFO_FUTURE 2331bd4fe43Sopenharmony_ci} HI_HDMI_SCANINFO_E; 2341bd4fe43Sopenharmony_ci 2351bd4fe43Sopenharmony_citypedef enum hiHDMI_PICTURE_SCALING_E { 2361bd4fe43Sopenharmony_ci HDMI_PICTURE_NON_UNIFORM_SCALING, /* No Known, non-uniform picture scaling */ 2371bd4fe43Sopenharmony_ci HDMI_PICTURE_SCALING_H, /* Picture has been scaled horizentally */ 2381bd4fe43Sopenharmony_ci HDMI_PICTURE_SCALING_V, /* Picture has been scaled Vertically */ 2391bd4fe43Sopenharmony_ci HDMI_PICTURE_SCALING_HV /* Picture has been scaled Horizentally and Vertically */ 2401bd4fe43Sopenharmony_ci} HI_HDMI_PICTURE_SCALING_E; 2411bd4fe43Sopenharmony_ci 2421bd4fe43Sopenharmony_citypedef enum hiHDMI_COLORIMETRY_E { 2431bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_NO_DATA, /* Colorimetry no data option */ 2441bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_ITU601, /* Colorimetry ITU601 option */ 2451bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_ITU709, /* Colorimetry ITU709 option */ 2461bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_EXTENDED /* Colorimetry extended option */ 2471bd4fe43Sopenharmony_ci} HI_HDMI_COLORIMETRY_E; 2481bd4fe43Sopenharmony_ci 2491bd4fe43Sopenharmony_citypedef enum hiHDMI_EXT_COLORIMETRY_E { 2501bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_XVYCC_601, /* Colorimetry xvYCC601 extended option */ 2511bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_XVYCC_709, /* Colorimetry xvYCC709 extended option */ 2521bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_S_YCC_601, /* Colorimetry S YCC 601 extended option */ 2531bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_ADOBE_YCC_601, /* Colorimetry ADOBE YCC 601 extended option */ 2541bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_ADOBE_RGB, /* Colorimetry ADOBE RGB extended option */ 2551bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_2020_CONST_LUMINOUS, /* Colorimetry ITU2020 extended option */ 2561bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_2020_NON_CONST_LUMINOUS, /* Colorimetry ITU2020 extended option */ 2571bd4fe43Sopenharmony_ci HDMI_COLORIMETRY_RESERVED 2581bd4fe43Sopenharmony_ci} HI_HDMI_EXT_COLORIMETRY_E; 2591bd4fe43Sopenharmony_ci 2601bd4fe43Sopenharmony_citypedef enum hiHDMI_RGB_QUAN_RAGE_E { 2611bd4fe43Sopenharmony_ci HDMI_RGB_QUANTIZATION_DEFAULT_RANGE, /* Default range, it depends on the video format */ 2621bd4fe43Sopenharmony_ci HDMI_RGB_QUANTIZATION_LIMITED_RANGE, /* Limited quantization range of 220 levels when receiving a CE video format */ 2631bd4fe43Sopenharmony_ci HDMI_RGB_QUANTIZATION_FULL_RANGE, /* Full quantization range of 256 levels when receiving an IT video format */ 2641bd4fe43Sopenharmony_ci HDMI_RGB_QUANTIZATION_FULL_RESERVED 2651bd4fe43Sopenharmony_ci} HI_HDMI_RGB_QUAN_RAGE_E; 2661bd4fe43Sopenharmony_ci 2671bd4fe43Sopenharmony_citypedef enum hiHDMI_YCC_QUAN_RAGE_E { 2681bd4fe43Sopenharmony_ci HDMI_YCC_QUANTIZATION_LIMITED_RANGE, /* Limited quantization range of 220 levels when receiving a CE video format */ 2691bd4fe43Sopenharmony_ci HDMI_YCC_QUANTIZATION_FULL_RANGE, /* Full quantization range of 256 levels when receiving an IT video format */ 2701bd4fe43Sopenharmony_ci HDMI_YCC_QUANTIZATION_RESERVED_2, 2711bd4fe43Sopenharmony_ci HDMI_YCC_QUANTIZATION_RESERVED_3 2721bd4fe43Sopenharmony_ci} HI_HDMI_YCC_QUAN_RAGE_E; 2731bd4fe43Sopenharmony_ci 2741bd4fe43Sopenharmony_citypedef enum hiHDMI_QUANTIZATION_E { 2751bd4fe43Sopenharmony_ci HDMI_QUANTIZATION_LIMITED_RANGE, /* Limited quantization range of 220 levels when receiving a CE video format */ 2761bd4fe43Sopenharmony_ci HDMI_QUANTIZATION_FULL_RANGE, /* Full quantization range of 256 levels when receiving an IT video format */ 2771bd4fe43Sopenharmony_ci HDMI_QUANTIZATION_BUTT 2781bd4fe43Sopenharmony_ci} HI_HDMI_QUANTIZATION_E; 2791bd4fe43Sopenharmony_ci 2801bd4fe43Sopenharmony_citypedef enum hiHDMI_PIXEL_REPETITION_E { 2811bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_NO, 2821bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_2_TIMES, 2831bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_3_TIMES, 2841bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_4_TIMES, 2851bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_5_TIMES, 2861bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_6_TIMES, 2871bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_7_TIMES, 2881bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_8_TIMES, 2891bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_9_TIMES, 2901bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_10_TIMES, 2911bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_RESERVED_A, 2921bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_RESERVED_B, 2931bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_RESERVED_C, 2941bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_RESERVED_D, 2951bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_RESERVED_E, 2961bd4fe43Sopenharmony_ci HDMI_PIXEL_REPET_RESERVED_F 2971bd4fe43Sopenharmony_ci} HI_HDMI_PIXEL_REPETITION_E; 2981bd4fe43Sopenharmony_ci 2991bd4fe43Sopenharmony_citypedef enum hiHDMI_CONTENT_TYPE_E { 3001bd4fe43Sopenharmony_ci HDMI_CONTNET_GRAPHIC, /* Graphics type */ 3011bd4fe43Sopenharmony_ci HDMI_CONTNET_PHOTO, /* Photo type */ 3021bd4fe43Sopenharmony_ci HDMI_CONTNET_CINEMA, /* Cinema type */ 3031bd4fe43Sopenharmony_ci HDMI_CONTNET_GAME /* Game type */ 3041bd4fe43Sopenharmony_ci} HI_HDMI_CONTENT_TYPE_E; 3051bd4fe43Sopenharmony_ci 3061bd4fe43Sopenharmony_citypedef enum hiHDMI_CODING_TYPE_E { 3071bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_REFER_STREAM_HEAD, 3081bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_PCM, 3091bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_AC3, 3101bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_MPEG1, 3111bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_MP3, 3121bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_MPEG2, 3131bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_AACLC, 3141bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_DTS, 3151bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_ATRAC, 3161bd4fe43Sopenharmony_ci HDMI_AUDIO_CODIND_ONE_BIT_AUDIO, 3171bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_ENAHNCED_AC3, 3181bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_DTS_HD, 3191bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_MAT, 3201bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_DST, 3211bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_WMA_PRO, 3221bd4fe43Sopenharmony_ci HDMI_AUDIO_CODING_MAX 3231bd4fe43Sopenharmony_ci} HI_HDMI_CODING_TYPE_E; 3241bd4fe43Sopenharmony_ci 3251bd4fe43Sopenharmony_citypedef enum hiHDMI_AUDIO_SPEAKER_E { 3261bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_FL_FR, 3271bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_LFE, 3281bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_FC, 3291bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_RL_RR, 3301bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_RC, 3311bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_FLC_FRC, 3321bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_RLC_RRC, 3331bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_FLW_FRW, 3341bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_FLH_FRH, 3351bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_TC, 3361bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_FCH, 3371bd4fe43Sopenharmony_ci HDMI_AUDIO_SPEAKER_BUTT 3381bd4fe43Sopenharmony_ci} HI_HDMI_AUDIO_SPEAKER_E; 3391bd4fe43Sopenharmony_ci 3401bd4fe43Sopenharmony_citypedef enum hiHDMI_FORCE_ACTION_E { 3411bd4fe43Sopenharmony_ci HI_HDMI_FORCE_NULL, /* Standard mode */ 3421bd4fe43Sopenharmony_ci HI_HDMI_FORCE_HDMI, /* Forcibly output video in HDMI mode */ 3431bd4fe43Sopenharmony_ci HI_HDMI_FORCE_DVI, /* Forcibly output video in DVI mode */ 3441bd4fe43Sopenharmony_ci HI_HDMI_INIT_BOOT_CONFIG /* Test only */ 3451bd4fe43Sopenharmony_ci} HI_HDMI_FORCE_ACTION_E; 3461bd4fe43Sopenharmony_ci 3471bd4fe43Sopenharmony_citypedef enum hiHI_HDMI_CSC_MATRIX_E { 3481bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_IDENTITY, 3491bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_BT601_TO_BT709, 3501bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_BT709_TO_BT601, 3511bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_BT601_TO_RGB_PC, 3521bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_BT709_TO_RGB_PC, 3531bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_RGB_TO_BT601_PC, 3541bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_RGB_TO_BT709_PC, 3551bd4fe43Sopenharmony_ci HI_HDMI_CSC_MATRIX_BUTT 3561bd4fe43Sopenharmony_ci} HI_HDMI_CSC_MATRIX_E; 3571bd4fe43Sopenharmony_ci 3581bd4fe43Sopenharmony_citypedef void (*HI_HDMI_CallBack)(HI_HDMI_EVENT_TYPE_E event, hi_void *pPrivateData); 3591bd4fe43Sopenharmony_ci 3601bd4fe43Sopenharmony_citypedef struct hiHDMI_CALLBACK_FUNC_S { 3611bd4fe43Sopenharmony_ci HI_HDMI_CallBack pfnHdmiEventCallback; /* Event handling callback function */ 3621bd4fe43Sopenharmony_ci hi_void *pPrivateData; /* Private data of the callback functions and parameters */ 3631bd4fe43Sopenharmony_ci} HI_HDMI_CALLBACK_FUNC_S; 3641bd4fe43Sopenharmony_ci 3651bd4fe43Sopenharmony_citypedef struct hiHDMI_AUDIO_INFO_S { 3661bd4fe43Sopenharmony_ci /* Audio coding type */ 3671bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_FORMAT_CODE_E enAudFmtCode; 3681bd4fe43Sopenharmony_ci /* Audio sample rate */ 3691bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_E enSupportSampleRate[HI_HDMI_MAX_SAMPE_RATE_NUM]; 3701bd4fe43Sopenharmony_ci /* Aud Channel of the coding type */ 3711bd4fe43Sopenharmony_ci hi_u8 u8AudChannel; 3721bd4fe43Sopenharmony_ci /* sample bit depth, when audio format code is HI_UNF_EDID_AUDIO_FORMAT_CODE_PCM */ 3731bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_E enSupportBitDepth[HI_HDMI_MAX_BIT_DEPTH_NUM]; 3741bd4fe43Sopenharmony_ci /* sample bit depth Num, when audio format code is HI_UNF_EDID_AUDIO_FORMAT_CODE_PCM */ 3751bd4fe43Sopenharmony_ci hi_u32 u32SupportBitDepthNum; 3761bd4fe43Sopenharmony_ci /* 3771bd4fe43Sopenharmony_ci * enter max bit rate, when audio format code is 3781bd4fe43Sopenharmony_ci * HI_UNF_EDID_AUDIO_FORMAT_CODE_AC3 - HI_UNF_EDID_AUDIO_FORMAT_CODE_ATRAC 3791bd4fe43Sopenharmony_ci */ 3801bd4fe43Sopenharmony_ci hi_u32 u32MaxBitRate; 3811bd4fe43Sopenharmony_ci} HI_HDMI_AUDIO_INFO_S; 3821bd4fe43Sopenharmony_ci 3831bd4fe43Sopenharmony_citypedef struct hiHDMI_EOTF_S { 3841bd4fe43Sopenharmony_ci hi_bool bEotfSdr; /* Traditional gamma - SDR Luminance Range. */ 3851bd4fe43Sopenharmony_ci hi_bool bEotfHdr; /* Traditional gamma - HDR Luminance Range. */ 3861bd4fe43Sopenharmony_ci hi_bool bEotfSmpteSt2084; /* SMPTE ST 2084 */ 3871bd4fe43Sopenharmony_ci hi_bool bEotfHLG; /* Hybrid Log-Gamma(HLG) based on Recommendation ITU-R BT.2100-0 */ 3881bd4fe43Sopenharmony_ci hi_bool bEotfFuture; /* Future EOTF */ 3891bd4fe43Sopenharmony_ci} HI_HDMI_EOTF_S; 3901bd4fe43Sopenharmony_ci 3911bd4fe43Sopenharmony_citypedef struct hiHDMI_HDR_METADATA_TYPE_S { 3921bd4fe43Sopenharmony_ci hi_bool bDescriptorType1; /* Support Static Metadata Type 1 or not. */ 3931bd4fe43Sopenharmony_ci} HI_HDMI_HDR_METADATA_TYPE_S; 3941bd4fe43Sopenharmony_ci 3951bd4fe43Sopenharmony_citypedef struct hiHDMI_HDR_CAP_S { 3961bd4fe43Sopenharmony_ci /* EOTF support. */ 3971bd4fe43Sopenharmony_ci HI_HDMI_EOTF_S stEotf; 3981bd4fe43Sopenharmony_ci /* static metadata descriptor type(ID) support. */ 3991bd4fe43Sopenharmony_ci HI_HDMI_HDR_METADATA_TYPE_S stMetadata; 4001bd4fe43Sopenharmony_ci /* Desired Content Max Luminance Data. Real value(in 1cd/m^2) = 50.2^(CV/32) */ 4011bd4fe43Sopenharmony_ci hi_u8 u8MaxLuminance_CV; 4021bd4fe43Sopenharmony_ci /* Desired Content Max Frame-average Luminance. Real value(in 1cd/m^2) = 50.2^(CV/32) */ 4031bd4fe43Sopenharmony_ci hi_u8 u8AverageLumin_CV; 4041bd4fe43Sopenharmony_ci /* 4051bd4fe43Sopenharmony_ci * Desired Content Min Luminance Data. 4061bd4fe43Sopenharmony_ci * Real value(in 1cd/m^2) = u8MaxLuminance_CV * (u8MinLuminance_CV/255)^2 / 100 4071bd4fe43Sopenharmony_ci */ 4081bd4fe43Sopenharmony_ci hi_u8 u8MinLuminance_CV; 4091bd4fe43Sopenharmony_ci} HI_HDMI_HDR_CAP_S; 4101bd4fe43Sopenharmony_ci 4111bd4fe43Sopenharmony_citypedef struct hiHDMI_TIMING_INFO_S { 4121bd4fe43Sopenharmony_ci hi_u32 u32VFB; /* vertical front blank */ 4131bd4fe43Sopenharmony_ci hi_u32 u32VBB; /* vertical back blank */ 4141bd4fe43Sopenharmony_ci hi_u32 u32VACT; /* vertical active area */ 4151bd4fe43Sopenharmony_ci hi_u32 u32HFB; /* horizontal front blank */ 4161bd4fe43Sopenharmony_ci hi_u32 u32HBB; /* horizontal back blank */ 4171bd4fe43Sopenharmony_ci hi_u32 u32HACT; /* horizontal active area */ 4181bd4fe43Sopenharmony_ci hi_u32 u32VPW; /* vertical sync pulse width */ 4191bd4fe43Sopenharmony_ci hi_u32 u32HPW; /* horizontal sync pulse width */ 4201bd4fe43Sopenharmony_ci hi_bool bIDV; /* flag of data valid signal is needed flip */ 4211bd4fe43Sopenharmony_ci hi_bool bIHS; /* flag of horizontal sync pulse is needed flip */ 4221bd4fe43Sopenharmony_ci hi_bool bIVS; /* flag of vertical sync pulse is needed flip */ 4231bd4fe43Sopenharmony_ci hi_u32 u32ImageWidth; /* image width */ 4241bd4fe43Sopenharmony_ci hi_u32 u32ImageHeight; /* image height */ 4251bd4fe43Sopenharmony_ci hi_u32 u32AspectRatioW; /* aspect ratio width */ 4261bd4fe43Sopenharmony_ci hi_u32 u32AspectRatioH; /* aspect ratio height */ 4271bd4fe43Sopenharmony_ci hi_bool bInterlace; /* flag of interlace */ 4281bd4fe43Sopenharmony_ci hi_s32 u32PixelClk; /* pixelc clk for this timing, unit:KHz */ 4291bd4fe43Sopenharmony_ci} HI_HDMI_TIMING_INFO_S; 4301bd4fe43Sopenharmony_ci 4311bd4fe43Sopenharmony_citypedef struct hiHDMI_DET_TIMING_S { 4321bd4fe43Sopenharmony_ci hi_u32 u32DetTimingNum; 4331bd4fe43Sopenharmony_ci HI_HDMI_TIMING_INFO_S astDetTiming[HI_HDMI_DETAIL_TIMING_MAX]; 4341bd4fe43Sopenharmony_ci} HI_HDMI_DET_TIMING_S; 4351bd4fe43Sopenharmony_ci 4361bd4fe43Sopenharmony_citypedef struct hiHDMI_SINK_CAPABILITY_S { 4371bd4fe43Sopenharmony_ci /* Whether the devices are connected. */ 4381bd4fe43Sopenharmony_ci hi_bool bConnected; 4391bd4fe43Sopenharmony_ci /* Whether the HDMI is supported by the device. If the HDMI is not supported by the device, the device is DVI. */ 4401bd4fe43Sopenharmony_ci hi_bool bSupportHdmi; 4411bd4fe43Sopenharmony_ci /* Whether the sink device is powered on. */ 4421bd4fe43Sopenharmony_ci hi_bool bIsSinkPowerOn; 4431bd4fe43Sopenharmony_ci /* 4441bd4fe43Sopenharmony_ci * Whether the EDID obtains the flag from the sink device. 4451bd4fe43Sopenharmony_ci * HI_TRUE: The EDID information is correctly read. 4461bd4fe43Sopenharmony_ci * HI_FASE: default settings 4471bd4fe43Sopenharmony_ci */ 4481bd4fe43Sopenharmony_ci hi_bool bIsRealEDID; 4491bd4fe43Sopenharmony_ci /* Physical resolution of the display device. */ 4501bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_E enNativeVideoFormat; 4511bd4fe43Sopenharmony_ci /* 4521bd4fe43Sopenharmony_ci * Video capability set. 4531bd4fe43Sopenharmony_ci * HI_TRUE: This display format is supported. 4541bd4fe43Sopenharmony_ci * HI_FALSE: This display format is not supported. 4551bd4fe43Sopenharmony_ci */ 4561bd4fe43Sopenharmony_ci hi_bool bVideoFmtSupported[HI_HDMI_VIDEO_FMT_BUTT]; 4571bd4fe43Sopenharmony_ci /* 4581bd4fe43Sopenharmony_ci * Whether the YCBCR display is supported. 4591bd4fe43Sopenharmony_ci * HI_TRUE: The YCBCR display is supported. 4601bd4fe43Sopenharmony_ci * HI_FALSE: Only red-green-blue (RGB) is supported. 4611bd4fe43Sopenharmony_ci */ 4621bd4fe43Sopenharmony_ci hi_bool bSupportYCbCr; 4631bd4fe43Sopenharmony_ci /* Whether the xvYCC601 color format is supported. */ 4641bd4fe43Sopenharmony_ci hi_bool bSupportxvYCC601; 4651bd4fe43Sopenharmony_ci /* Whether the xvYCC709 color format is supported. */ 4661bd4fe43Sopenharmony_ci hi_bool bSupportxvYCC709; 4671bd4fe43Sopenharmony_ci hi_bool bSupportYccBT2020; 4681bd4fe43Sopenharmony_ci /* Transfer profile supported by xvYCC601. 1: P0; 2: P1; 4: P2. */ 4691bd4fe43Sopenharmony_ci hi_u8 u8MDBit; 4701bd4fe43Sopenharmony_ci /* Num of audio Info */ 4711bd4fe43Sopenharmony_ci hi_u32 u32AudioInfoNum; 4721bd4fe43Sopenharmony_ci /* Audio Info.For details, see Table 37 in EIA-CEA-861-D. */ 4731bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_INFO_S stAudioInfo[HI_HDMI_MAX_AUDIO_CAP_COUNT]; 4741bd4fe43Sopenharmony_ci /* Speaker position. For details, see the definition of SpeakerDATABlock in EIA-CEA-861-D. */ 4751bd4fe43Sopenharmony_ci hi_bool bSpeaker[HDMI_AUDIO_SPEAKER_BUTT]; 4761bd4fe43Sopenharmony_ci /* Device vendor flag */ 4771bd4fe43Sopenharmony_ci hi_u8 u8IDManufactureName[4]; 4781bd4fe43Sopenharmony_ci /* Device ID. */ 4791bd4fe43Sopenharmony_ci hi_u32 u32IDProductCode; 4801bd4fe43Sopenharmony_ci /* Device sequence number. */ 4811bd4fe43Sopenharmony_ci hi_u32 u32IDSerialNumber; 4821bd4fe43Sopenharmony_ci /* Device production data (week). */ 4831bd4fe43Sopenharmony_ci hi_u32 u32WeekOfManufacture; 4841bd4fe43Sopenharmony_ci /* Set the production data (year). */ 4851bd4fe43Sopenharmony_ci hi_u32 u32YearOfManufacture; 4861bd4fe43Sopenharmony_ci /* Device version number */ 4871bd4fe43Sopenharmony_ci hi_u8 u8Version; 4881bd4fe43Sopenharmony_ci /* Device sub version number */ 4891bd4fe43Sopenharmony_ci hi_u8 u8Revision; 4901bd4fe43Sopenharmony_ci /* EDID extended block number */ 4911bd4fe43Sopenharmony_ci hi_u8 u8EDIDExternBlockNum; 4921bd4fe43Sopenharmony_ci /* Valid flag of the consumer electronics control (CEC) physical address */ 4931bd4fe43Sopenharmony_ci hi_bool bIsPhyAddrValid; 4941bd4fe43Sopenharmony_ci /* CEC physical address A */ 4951bd4fe43Sopenharmony_ci hi_u8 u8PhyAddr_A; 4961bd4fe43Sopenharmony_ci /* CEC physical address B */ 4971bd4fe43Sopenharmony_ci hi_u8 u8PhyAddr_B; 4981bd4fe43Sopenharmony_ci /* CEC physical address C */ 4991bd4fe43Sopenharmony_ci hi_u8 u8PhyAddr_C; 5001bd4fe43Sopenharmony_ci /* CEC physical address D */ 5011bd4fe43Sopenharmony_ci hi_u8 u8PhyAddr_D; 5021bd4fe43Sopenharmony_ci /* Whether to support the DVI dual-link operation. */ 5031bd4fe43Sopenharmony_ci hi_bool bSupportDVIDual; 5041bd4fe43Sopenharmony_ci /* Whether to support the YCBCR 4:4:4 deep-color mode. */ 5051bd4fe43Sopenharmony_ci hi_bool bSupportDeepColorYCBCR444; 5061bd4fe43Sopenharmony_ci /* Whether to support the deep-color 30-bit mode. */ 5071bd4fe43Sopenharmony_ci hi_bool bSupportDeepColor30Bit; 5081bd4fe43Sopenharmony_ci /* Whether to support the deep-color 36-bit mode. */ 5091bd4fe43Sopenharmony_ci hi_bool bSupportDeepColor36Bit; 5101bd4fe43Sopenharmony_ci /* Whether to support the deep-color 48-bit mode. */ 5111bd4fe43Sopenharmony_ci hi_bool bSupportDeepColor48Bit; 5121bd4fe43Sopenharmony_ci /* Whether to support the Supports_AI mode. */ 5131bd4fe43Sopenharmony_ci hi_bool bSupportAI; 5141bd4fe43Sopenharmony_ci /* Maximum TMDS clock. */ 5151bd4fe43Sopenharmony_ci hi_u32 u32MaxTMDSClock; 5161bd4fe43Sopenharmony_ci /* Delay flag bit. */ 5171bd4fe43Sopenharmony_ci hi_bool bI_Latency_Fields_Present; 5181bd4fe43Sopenharmony_ci /* whether Video_Latency and Audio_Latency fields are present */ 5191bd4fe43Sopenharmony_ci hi_bool bLatency_Fields_Present; 5201bd4fe43Sopenharmony_ci /* Special video format */ 5211bd4fe43Sopenharmony_ci hi_bool bHDMI_Video_Present; 5221bd4fe43Sopenharmony_ci /* Video delay */ 5231bd4fe43Sopenharmony_ci hi_u8 u8Video_Latency; 5241bd4fe43Sopenharmony_ci /* Audio delay */ 5251bd4fe43Sopenharmony_ci hi_u8 u8Audio_Latency; 5261bd4fe43Sopenharmony_ci /* Video delay in interlaced video mode */ 5271bd4fe43Sopenharmony_ci hi_u8 u8Interlaced_Video_Latency; 5281bd4fe43Sopenharmony_ci /* Audio delay in interlaced video mode */ 5291bd4fe43Sopenharmony_ci hi_u8 u8Interlaced_Audio_Latency; 5301bd4fe43Sopenharmony_ci /* Whether to support the YUV420 deep-color 30-bit mode. */ 5311bd4fe43Sopenharmony_ci hi_bool bSupportY420DC30Bit; 5321bd4fe43Sopenharmony_ci /* Whether to support the YUV420 deep-color 36-bit mode. */ 5331bd4fe43Sopenharmony_ci hi_bool bSupportY420DC36Bit; 5341bd4fe43Sopenharmony_ci /* Whether to support the YUV420 deep-color 48-bit mode. */ 5351bd4fe43Sopenharmony_ci hi_bool bSupportY420DC48Bit; 5361bd4fe43Sopenharmony_ci /* Whether to support HDMI2.0. */ 5371bd4fe43Sopenharmony_ci hi_bool bSupportHdmi_2_0; 5381bd4fe43Sopenharmony_ci /* the format support YUV420 */ 5391bd4fe43Sopenharmony_ci hi_bool bSupportY420Format[HI_HDMI_VIDEO_FMT_BUTT]; 5401bd4fe43Sopenharmony_ci /* the format only support YUV420 */ 5411bd4fe43Sopenharmony_ci hi_bool bOnlySupportY420Format[HI_HDMI_VIDEO_FMT_BUTT]; 5421bd4fe43Sopenharmony_ci /* 5431bd4fe43Sopenharmony_ci * flag of RGB Quantization Range selectable. 5441bd4fe43Sopenharmony_ci * when HI_TRUE,sink expect full/limited range is selectable 5451bd4fe43Sopenharmony_ci * or sink expect default range. 5461bd4fe43Sopenharmony_ci */ 5471bd4fe43Sopenharmony_ci hi_bool bYccQrangeSelectable; 5481bd4fe43Sopenharmony_ci /* 5491bd4fe43Sopenharmony_ci * flag of YCC Quantization Range selectable. 5501bd4fe43Sopenharmony_ci * when HI_TRUE,sink expect full/limited range is selectable;or sink expect default range. 5511bd4fe43Sopenharmony_ci */ 5521bd4fe43Sopenharmony_ci hi_bool bRgbQrangeSelectable; 5531bd4fe43Sopenharmony_ci /* HDR support flag.When HDR Static Metadata Data Block is indicated,flag HI_TRUE;or,HI_FALSE. */ 5541bd4fe43Sopenharmony_ci hi_bool bHdrSupport; 5551bd4fe43Sopenharmony_ci /* HDR capability */ 5561bd4fe43Sopenharmony_ci HI_HDMI_HDR_CAP_S stHdr; 5571bd4fe43Sopenharmony_ci /* Detailed timing information */ 5581bd4fe43Sopenharmony_ci HI_HDMI_DET_TIMING_S stDetailedTiming; 5591bd4fe43Sopenharmony_ci} HI_HDMI_SINK_CAPABILITY_S; 5601bd4fe43Sopenharmony_ci 5611bd4fe43Sopenharmony_citypedef struct hiHDMI_ATTR_S { 5621bd4fe43Sopenharmony_ci /* Whether to forcibly output the video over the HDMI. */ 5631bd4fe43Sopenharmony_ci hi_bool bEnableHdmi; 5641bd4fe43Sopenharmony_ci /* 5651bd4fe43Sopenharmony_ci * Whether to output video.The value must be HI_TRUE. 5661bd4fe43Sopenharmony_ci * If the value is HI_FALSE, the HDMI is forcibly set to HI_TRUE. 5671bd4fe43Sopenharmony_ci */ 5681bd4fe43Sopenharmony_ci hi_bool bEnableVideo; 5691bd4fe43Sopenharmony_ci /* Video norm. This value of the video norm must be consistent with the norm of the video output. */ 5701bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_E enVideoFmt; 5711bd4fe43Sopenharmony_ci /* HDMI input video input mode.VIDEO_MODE_YCBCR444,VIDEO_MODE_YCBCR422,VIDEO_MODE_YCBCR420,VIDEO_MODE_RGB444 */ 5721bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_E enVidInMode; 5731bd4fe43Sopenharmony_ci /* HDMI output video output mode.VIDEO_MODE_YCBCR444,VIDEO_MODE_YCBCR422,VIDEO_MODE_YCBCR420,VIDEO_MODE_RGB444 */ 5741bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_MODE_E enVidOutMode; 5751bd4fe43Sopenharmony_ci /* CSC output quantization range HDMI_QUANTIZATION_RANGE_LIMITED, HDMI_QUANTIZATION_RANGE_FULL>**/ 5761bd4fe43Sopenharmony_ci HI_HDMI_QUANTIZATION_E enOutCscQuantization; 5771bd4fe43Sopenharmony_ci /* DeepColor output mode. It is HI_HDMI_DEEP_COLOR_24BIT by default. */ 5781bd4fe43Sopenharmony_ci HI_HDMI_DEEP_COLOR_E enDeepColorMode; 5791bd4fe43Sopenharmony_ci /* Whether to enable the xvYCC output mode. It is HI_FALSE by default. */ 5801bd4fe43Sopenharmony_ci hi_bool bxvYCCMode; 5811bd4fe43Sopenharmony_ci /* Whether to enable the audio. */ 5821bd4fe43Sopenharmony_ci hi_bool bEnableAudio; 5831bd4fe43Sopenharmony_ci /* HDMI audio source. It is set to HI_HDMI_SND_INTERFACE_I2S, which needs to be consistent with the VO interface. */ 5841bd4fe43Sopenharmony_ci HI_HDMI_SND_INTERFACE_E enSoundIntf; 5851bd4fe43Sopenharmony_ci /* Multi-channel or stereo 0: stereo 1: eight-channel fixed for multi-channel */ 5861bd4fe43Sopenharmony_ci hi_bool bIsMultiChannel; 5871bd4fe43Sopenharmony_ci /* Audio sampling rate. This parameter needs to be consistent with that of the VO. */ 5881bd4fe43Sopenharmony_ci HI_HDMI_SAMPLE_RATE_E enSampleRate; 5891bd4fe43Sopenharmony_ci /* Audio down sampling rate parameter. It is 0 by default. */ 5901bd4fe43Sopenharmony_ci hi_u8 u8DownSampleParm; 5911bd4fe43Sopenharmony_ci /* Audio bit width. It is 16 by default. This parameter needs to be consistent with that of the VO. */ 5921bd4fe43Sopenharmony_ci HI_HDMI_BIT_DEPTH_E enBitDepth; 5931bd4fe43Sopenharmony_ci /* Reserved. It is set to 0. I2S control (0x7A:0x1D) */ 5941bd4fe43Sopenharmony_ci hi_u8 u8I2SCtlVbit; 5951bd4fe43Sopenharmony_ci /* Whether to enable AVI InfoFrame. It is recommended to enable this function. */ 5961bd4fe43Sopenharmony_ci hi_bool bEnableAviInfoFrame; 5971bd4fe43Sopenharmony_ci /* Whether to enable AUDIO InfoFrame. It is recommended to enable this function. */ 5981bd4fe43Sopenharmony_ci hi_bool bEnableAudInfoFrame; 5991bd4fe43Sopenharmony_ci /* Whether to enable SPD InfoFrame. It is recommended to disable this function. */ 6001bd4fe43Sopenharmony_ci hi_bool bEnableSpdInfoFrame; 6011bd4fe43Sopenharmony_ci /* Whether to enable MPEG InfoFrame. It is recommended to disable this function. */ 6021bd4fe43Sopenharmony_ci hi_bool bEnableMpegInfoFrame; 6031bd4fe43Sopenharmony_ci /* Whether to enable the debug information in the HDMI. It is recommended to disable this function. */ 6041bd4fe43Sopenharmony_ci hi_bool bDebugFlag; 6051bd4fe43Sopenharmony_ci /* Whether to enable the HDCP.0: disabled 1: enabled */ 6061bd4fe43Sopenharmony_ci hi_bool bHDCPEnable; 6071bd4fe43Sopenharmony_ci /* Whether to enable 3D mode. 0: disabled 1: enabled */ 6081bd4fe43Sopenharmony_ci hi_bool b3DEnable; 6091bd4fe43Sopenharmony_ci /* 3D Parameter. The default value is 9. */ 6101bd4fe43Sopenharmony_ci hi_u8 u83DParam; 6111bd4fe43Sopenharmony_ci /* When get capability fail, HDMI forcily(priority) judgments output video mode. Default is HI_HDMI_FORCE_HDMI. */ 6121bd4fe43Sopenharmony_ci HI_HDMI_FORCE_ACTION_E enDefaultMode; 6131bd4fe43Sopenharmony_ci /* Whether to enable auth mode. 0: disabled 1: enabled */ 6141bd4fe43Sopenharmony_ci hi_bool bAuthMode; 6151bd4fe43Sopenharmony_ci /* 6161bd4fe43Sopenharmony_ci * Enable flag of video mode & DVI adapting case of user setting incorrect, default:HI_TRUE. 6171bd4fe43Sopenharmony_ci * When user have no any adapting strategy, suggestion HI_TRUE 6181bd4fe43Sopenharmony_ci */ 6191bd4fe43Sopenharmony_ci hi_bool bEnableVidModeAdapt; 6201bd4fe43Sopenharmony_ci /* 6211bd4fe43Sopenharmony_ci * Enable flag of deep color mode adapting case of user setting incorrect, default: HI_FALSE. 6221bd4fe43Sopenharmony_ci * When user have no any adapting strategy, suggestion HI_TRUE 6231bd4fe43Sopenharmony_ci */ 6241bd4fe43Sopenharmony_ci hi_bool bEnableDeepClrAdapt; 6251bd4fe43Sopenharmony_ci /* 6261bd4fe43Sopenharmony_ci * Pixclk of enVideoFmt(unit is kHz). 6271bd4fe43Sopenharmony_ci * (This param is valid only when enVideoFmt is HI_HDMI_VIDEO_FMT_VESA_CUSTOMER_DEFINE) 6281bd4fe43Sopenharmony_ci */ 6291bd4fe43Sopenharmony_ci hi_u32 u32PixClk; 6301bd4fe43Sopenharmony_ci} HI_HDMI_ATTR_S; 6311bd4fe43Sopenharmony_ci 6321bd4fe43Sopenharmony_citypedef struct hiHI_HDMI_EDID_S { 6331bd4fe43Sopenharmony_ci hi_bool bEdidValid; 6341bd4fe43Sopenharmony_ci hi_u32 u32Edidlength; 6351bd4fe43Sopenharmony_ci hi_u8 u8Edid[HI_HDMI_EDID_RAW_DATA_LEN]; 6361bd4fe43Sopenharmony_ci} HI_HDMI_EDID_S; 6371bd4fe43Sopenharmony_ci 6381bd4fe43Sopenharmony_citypedef enum hiHDMI_INFOFRAME_TYPE_E { 6391bd4fe43Sopenharmony_ci HI_INFOFRAME_TYPE_AVI, /* HDMI AVI InfoFrame */ 6401bd4fe43Sopenharmony_ci HI_INFOFRAME_TYPE_SPD, /* HDMI SPD InfoFrame */ 6411bd4fe43Sopenharmony_ci HI_INFOFRAME_TYPE_AUDIO, /* HDMI AUDIO InfoFrame */ 6421bd4fe43Sopenharmony_ci HI_INFOFRAME_TYPE_MPEG, /* HDMI MPEG InfoFrame */ 6431bd4fe43Sopenharmony_ci HI_INFOFRAME_TYPE_VENDORSPEC, /* HDMI Vendor Specific InfoFrame */ 6441bd4fe43Sopenharmony_ci HI_INFOFRAME_TYPE_BUTT 6451bd4fe43Sopenharmony_ci} HI_HDMI_INFOFRAME_TYPE_E; 6461bd4fe43Sopenharmony_ci 6471bd4fe43Sopenharmony_citypedef struct hi_HDMI_AVI_INFOFRAME_VER2_S { 6481bd4fe43Sopenharmony_ci HI_HDMI_VIDEO_FMT_E enTimingMode; 6491bd4fe43Sopenharmony_ci HI_HDMI_COLOR_SPACE_E enColorSpace; 6501bd4fe43Sopenharmony_ci hi_bool bActive_Infor_Present; 6511bd4fe43Sopenharmony_ci HI_HDMI_BARINFO_E enBarInfo; 6521bd4fe43Sopenharmony_ci HI_HDMI_SCANINFO_E enScanInfo; 6531bd4fe43Sopenharmony_ci HI_HDMI_COLORIMETRY_E enColorimetry; 6541bd4fe43Sopenharmony_ci HI_HDMI_EXT_COLORIMETRY_E enExtColorimetry; 6551bd4fe43Sopenharmony_ci HI_HDMI_PIC_ASPECT_RATIO_E enAspectRatio; 6561bd4fe43Sopenharmony_ci HI_HDMI_ACT_ASPECT_RATIO_E enActiveAspectRatio; 6571bd4fe43Sopenharmony_ci HI_HDMI_PICTURE_SCALING_E enPictureScaling; 6581bd4fe43Sopenharmony_ci HI_HDMI_RGB_QUAN_RAGE_E enRGBQuantization; 6591bd4fe43Sopenharmony_ci hi_bool bIsITContent; 6601bd4fe43Sopenharmony_ci HI_HDMI_PIXEL_REPETITION_E enPixelRepetition; 6611bd4fe43Sopenharmony_ci HI_HDMI_CONTENT_TYPE_E enContentType; 6621bd4fe43Sopenharmony_ci HI_HDMI_YCC_QUAN_RAGE_E enYCCQuantization; 6631bd4fe43Sopenharmony_ci hi_u16 u16LineNEndofTopBar; 6641bd4fe43Sopenharmony_ci hi_u16 u16LineNStartofBotBar; 6651bd4fe43Sopenharmony_ci hi_u16 u16PixelNEndofLeftBar; 6661bd4fe43Sopenharmony_ci hi_u16 u16PixelNStartofRightBar; 6671bd4fe43Sopenharmony_ci} HI_HDMI_AVI_INFOFRAME_VER2_S; 6681bd4fe43Sopenharmony_ci 6691bd4fe43Sopenharmony_citypedef enum hiHDMI_AUDIO_CHANEL_CNT_E { 6701bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_STREAM, 6711bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_2, 6721bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_3, 6731bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_4, 6741bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_5, 6751bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_6, 6761bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_7, 6771bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_8 6781bd4fe43Sopenharmony_ci} HI_HDMI_AUDIO_CHANEL_CNT_E; 6791bd4fe43Sopenharmony_ci 6801bd4fe43Sopenharmony_citypedef enum hiHDMI_AUDIO_SAMPLE_SIZE_E { 6811bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_SIZE_STREAM, 6821bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_SIZE_16, 6831bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_SIZE_20, 6841bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_SIZE_24 6851bd4fe43Sopenharmony_ci} HI_HDMI_AUDIO_SAMPLE_SIZE_E; 6861bd4fe43Sopenharmony_ci 6871bd4fe43Sopenharmony_citypedef enum hiHDMI_AUDIO_SAMPLE_FREQ_E { 6881bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_STREAM, 6891bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_32000, 6901bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_44100, 6911bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_48000, 6921bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_88200, 6931bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_96000, 6941bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_176400, 6951bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_192000 6961bd4fe43Sopenharmony_ci} HI_HDMI_AUDIO_SAMPLE_FREQ_E; 6971bd4fe43Sopenharmony_ci 6981bd4fe43Sopenharmony_citypedef enum hiHDMI_LEVEL_SHIFT_VALUE_E { 6991bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_0_DB, 7001bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_1_DB, 7011bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_2_DB, 7021bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_3_DB, 7031bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_4_DB, 7041bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_5_DB, 7051bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_6_DB, 7061bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_7_DB, 7071bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_8_DB, 7081bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_9_DB, 7091bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_10_DB, 7101bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_11_DB, 7111bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_12_DB, 7121bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_13_DB, 7131bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_14_DB, 7141bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_15_DB 7151bd4fe43Sopenharmony_ci} HI_HDMI_LEVEL_SHIFT_VALUE_E; 7161bd4fe43Sopenharmony_ci 7171bd4fe43Sopenharmony_citypedef enum hiHDMI_LFE_PLAYBACK_LEVEL_E { 7181bd4fe43Sopenharmony_ci HI_HDMI_LFE_PLAYBACK_NO, 7191bd4fe43Sopenharmony_ci HI_HDMI_LFE_PLAYBACK_0_DB, 7201bd4fe43Sopenharmony_ci HI_HDMI_LFE_PLAYBACK_10_DB, 7211bd4fe43Sopenharmony_ci HI_HDMI_LFE_PLAYBACK_RESEVED 7221bd4fe43Sopenharmony_ci} HI_HDMI_LFE_PLAYBACK_LEVEL_E; 7231bd4fe43Sopenharmony_ci 7241bd4fe43Sopenharmony_citypedef struct hiHDMI_AUD_INFOFRAME_VER1_S { 7251bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_CHANEL_CNT_E enChannelCount; 7261bd4fe43Sopenharmony_ci HI_HDMI_CODING_TYPE_E enCodingType; 7271bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_SIZE_E enSampleSize; 7281bd4fe43Sopenharmony_ci HI_HDMI_AUDIO_SAMPLE_FREQ_E enSamplingFrequency; 7291bd4fe43Sopenharmony_ci hi_u8 u8ChannelAlloc; /* Channel/Speaker Allocation.Range [0,255] */ 7301bd4fe43Sopenharmony_ci HI_HDMI_LEVEL_SHIFT_VALUE_E enLevelShift; 7311bd4fe43Sopenharmony_ci HI_HDMI_LFE_PLAYBACK_LEVEL_E enLfePlaybackLevel; 7321bd4fe43Sopenharmony_ci hi_bool bDownmixInhibit; 7331bd4fe43Sopenharmony_ci} HI_HDMI_AUD_INFOFRAME_VER1_S; 7341bd4fe43Sopenharmony_ci 7351bd4fe43Sopenharmony_citypedef struct hiHDMI_SPD_INFOFRAME_S { 7361bd4fe43Sopenharmony_ci hi_u8 u8VendorName[8]; 7371bd4fe43Sopenharmony_ci hi_u8 u8ProductDescription[16]; 7381bd4fe43Sopenharmony_ci} HI_HDMI_SPD_INFOFRAME_S; 7391bd4fe43Sopenharmony_ci 7401bd4fe43Sopenharmony_citypedef struct hiHDMI_MPEGSOURCE_INFOFRAME_S { 7411bd4fe43Sopenharmony_ci hi_u32 u32MPEGBitRate; 7421bd4fe43Sopenharmony_ci hi_bool bIsFieldRepeated; 7431bd4fe43Sopenharmony_ci} HI_HDMI_MPEGSOURCE_INFOFRAME_S; 7441bd4fe43Sopenharmony_ci 7451bd4fe43Sopenharmony_citypedef struct hiHDMI_VENDORSPEC_INFOFRAME_S { 7461bd4fe43Sopenharmony_ci hi_u8 u8DataLen; 7471bd4fe43Sopenharmony_ci hi_u8 u8UserData[HI_HDMI_VENDOR_USER_DATA_MAX_LEN]; 7481bd4fe43Sopenharmony_ci} HI_HDMI_VENDORSPEC_INFOFRAME_S; 7491bd4fe43Sopenharmony_ci 7501bd4fe43Sopenharmony_citypedef union hiHDMI_INFOFRAME_UNIT_U { 7511bd4fe43Sopenharmony_ci HI_HDMI_AVI_INFOFRAME_VER2_S stAVIInfoFrame; 7521bd4fe43Sopenharmony_ci HI_HDMI_AUD_INFOFRAME_VER1_S stAUDInfoFrame; 7531bd4fe43Sopenharmony_ci HI_HDMI_SPD_INFOFRAME_S stSPDInfoFrame; 7541bd4fe43Sopenharmony_ci HI_HDMI_MPEGSOURCE_INFOFRAME_S stMPEGSourceInfoFrame; 7551bd4fe43Sopenharmony_ci HI_HDMI_VENDORSPEC_INFOFRAME_S stVendorSpecInfoFrame; 7561bd4fe43Sopenharmony_ci} HI_HMDI_INFORFRAME_UNIT_U; 7571bd4fe43Sopenharmony_ci 7581bd4fe43Sopenharmony_citypedef struct hiUNF_HDMI_INFOFRAME_S { 7591bd4fe43Sopenharmony_ci HI_HDMI_INFOFRAME_TYPE_E enInfoFrameType; /* InfoFrame type */ 7601bd4fe43Sopenharmony_ci HI_HMDI_INFORFRAME_UNIT_U unInforUnit; /* InfoFrame date */ 7611bd4fe43Sopenharmony_ci} HI_HDMI_INFOFRAME_S; 7621bd4fe43Sopenharmony_ci 7631bd4fe43Sopenharmony_ci/* 7641bd4fe43Sopenharmony_ci * CEC's Opcode: Please refer to CEC 15 Message Descriptions 7651bd4fe43Sopenharmony_ci * General Protocol messages 7661bd4fe43Sopenharmony_ci * Feature Abort> Used as a response to indicate that the device does not support the requested message type, 7671bd4fe43Sopenharmony_ci * or that it cannot execute it at the present time. 7681bd4fe43Sopenharmony_ci */ 7691bd4fe43Sopenharmony_ci#define CEC_OPCODE_FEATURE_ABORT 0x00 7701bd4fe43Sopenharmony_ci 7711bd4fe43Sopenharmony_ci/* <Abort> Message This message is reserved for testing purposes. */ 7721bd4fe43Sopenharmony_ci#define CEC_OPCODE_ABORT_MESSAGE 0xFF 7731bd4fe43Sopenharmony_ci 7741bd4fe43Sopenharmony_ci/* 7751bd4fe43Sopenharmony_ci * One Touch Play Feature 7761bd4fe43Sopenharmony_ci * <Active Source> Used by a new source to indicate that 7771bd4fe43Sopenharmony_ci * it has started to transmit a stream OR used in response to a <Request Active Source> 7781bd4fe43Sopenharmony_ci */ 7791bd4fe43Sopenharmony_ci#define CEC_OPCODE_ACTIVE_SOURCE 0x82 7801bd4fe43Sopenharmony_ci 7811bd4fe43Sopenharmony_ci/* 7821bd4fe43Sopenharmony_ci * <Image View On> Sent by a source device to the TV 7831bd4fe43Sopenharmony_ci * whenever it enters the active state (alternatively it may send <Text View On>). 7841bd4fe43Sopenharmony_ci */ 7851bd4fe43Sopenharmony_ci#define CEC_OPCODE_IMAGE_VIEW_ON 0x04 7861bd4fe43Sopenharmony_ci 7871bd4fe43Sopenharmony_ci/* 7881bd4fe43Sopenharmony_ci * <Text View On> As <Image View On>, 7891bd4fe43Sopenharmony_ci * but should also remove any text, menus and PIP windows from the TV's display. 7901bd4fe43Sopenharmony_ci */ 7911bd4fe43Sopenharmony_ci#define CEC_OPCODE_TEXT_VIEW_ON 0x0D 7921bd4fe43Sopenharmony_ci 7931bd4fe43Sopenharmony_ci/* 7941bd4fe43Sopenharmony_ci * Routing Control Feature 7951bd4fe43Sopenharmony_ci * <Inactive Source> Used by the currently active source to inform the TV 7961bd4fe43Sopenharmony_ci * that it has no video to be presented to the user, or is going into standby 7971bd4fe43Sopenharmony_ci * as the result of a local user command on the device. 7981bd4fe43Sopenharmony_ci */ 7991bd4fe43Sopenharmony_ci#define CEC_OPCODE_INACTIVE_SOURCE 0x9D 8001bd4fe43Sopenharmony_ci 8011bd4fe43Sopenharmony_ci/* <Request Active Source> Used by a new device to discover the status of the system. */ 8021bd4fe43Sopenharmony_ci#define CEC_OPCODE_REQUEST_ACTIVE_SOURCE 0x85 8031bd4fe43Sopenharmony_ci 8041bd4fe43Sopenharmony_ci/* 8051bd4fe43Sopenharmony_ci * <Routing Change> Sent by a CEC Switch when it is manually switched to 8061bd4fe43Sopenharmony_ci * inform all other devices on the network that the active route below the switch has changed. 8071bd4fe43Sopenharmony_ci */ 8081bd4fe43Sopenharmony_ci#define CEC_OPCODE_ROUTING_CHANGE 0x80 8091bd4fe43Sopenharmony_ci 8101bd4fe43Sopenharmony_ci/* <Routing Information> Sent by a CEC Switch to indicate the active route below the switch. */ 8111bd4fe43Sopenharmony_ci#define CEC_OPCODE_ROUTING_INFORMATION 0x81 8121bd4fe43Sopenharmony_ci 8131bd4fe43Sopenharmony_ci/* <Set Stream Path> Used by the TV to request a streaming path from the specified physical address. */ 8141bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_STREAM_PATH 0x86 8151bd4fe43Sopenharmony_ci 8161bd4fe43Sopenharmony_ci/* 8171bd4fe43Sopenharmony_ci * <Standby> Switches one or all devices into standby mode. 8181bd4fe43Sopenharmony_ci * Can be used as a broadcast message or be addressed to a specific device. 8191bd4fe43Sopenharmony_ci * See section CEC 13.3 for important notes on the use of this message 8201bd4fe43Sopenharmony_ci */ 8211bd4fe43Sopenharmony_ci#define CEC_OPCODE_STANDBY 0x36 8221bd4fe43Sopenharmony_ci 8231bd4fe43Sopenharmony_ci/* <Record Off> Requests a device to stop a recording. */ 8241bd4fe43Sopenharmony_ci#define CEC_OPCODE_RECORD_OFF 0x0B 8251bd4fe43Sopenharmony_ci 8261bd4fe43Sopenharmony_ci/* <Record On> Attempt to record the specified source. */ 8271bd4fe43Sopenharmony_ci#define CEC_OPCODE_RECORD_ON 0x09 8281bd4fe43Sopenharmony_ci 8291bd4fe43Sopenharmony_ci/* <Record Status> Used by a Recording Device to inform the initiator of the message <Record On> about its status. */ 8301bd4fe43Sopenharmony_ci#define CEC_OPCODE_RECORD_STATUS 0x0A 8311bd4fe43Sopenharmony_ci 8321bd4fe43Sopenharmony_ci/* <Record TV Screen> Request by the Recording Device to record the presently displayed source. */ 8331bd4fe43Sopenharmony_ci#define CEC_OPCODE_RECORD_TV_SCREEN 0x0F 8341bd4fe43Sopenharmony_ci 8351bd4fe43Sopenharmony_ci/* <Clear Analogue Timer> Used to clear an Analogue timer block of a device. */ 8361bd4fe43Sopenharmony_ci#define CEC_OPCODE_CLEAR_ANALOGUE_TIMER 0x33 8371bd4fe43Sopenharmony_ci 8381bd4fe43Sopenharmony_ci/* <Clear Digital Timer> Used to clear a Digital timer block of a device. */ 8391bd4fe43Sopenharmony_ci#define CEC_OPCODE_CLEAR_DIGITAL_TIMER 0x99 8401bd4fe43Sopenharmony_ci 8411bd4fe43Sopenharmony_ci/* <Clear External Timer> Used to clear an External timer block of a device. */ 8421bd4fe43Sopenharmony_ci#define CEC_OPCODE_CLEAR_EXTERNAL_TIMER 0xA1 8431bd4fe43Sopenharmony_ci 8441bd4fe43Sopenharmony_ci/* <Set Analogue Timer> Used to set a single timer block on an Analogue Recording Device. */ 8451bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_ANALOGUE_TIMER 0x34 8461bd4fe43Sopenharmony_ci 8471bd4fe43Sopenharmony_ci/* <Set Digital Timer> Used to set a single timer block on a Digital Recording Device. */ 8481bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_DIGITAL_TIMER 0x97 8491bd4fe43Sopenharmony_ci 8501bd4fe43Sopenharmony_ci/* <Set External Timer> Used to set a single timer block to record from an external device. */ 8511bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_EXTERNAL_TIMER 0xA2 8521bd4fe43Sopenharmony_ci 8531bd4fe43Sopenharmony_ci/* 8541bd4fe43Sopenharmony_ci * <Set Timer Program Title> Used to set the name of a program associated with 8551bd4fe43Sopenharmony_ci * a timer block. Sent directly after sending a <Set Analogue Timer> or <Set Digital Timer> message. 8561bd4fe43Sopenharmony_ci * The name is then associated with that timer block. 8571bd4fe43Sopenharmony_ci */ 8581bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_TIMER_PROGRAM_TITLE 0x67 8591bd4fe43Sopenharmony_ci 8601bd4fe43Sopenharmony_ci/* 8611bd4fe43Sopenharmony_ci * <Timer Cleared Status> Used to give the status of a <Clear Analogue Timer>, 8621bd4fe43Sopenharmony_ci * <Clear Digital Timer> or <Clear External Timer> message. 8631bd4fe43Sopenharmony_ci */ 8641bd4fe43Sopenharmony_ci#define CEC_OPCODE_TIMER_CLEARED_STATUS 0x43 8651bd4fe43Sopenharmony_ci 8661bd4fe43Sopenharmony_ci/* <Timer Status> Used to send timer status to the initiator of a <Set Timer> message. */ 8671bd4fe43Sopenharmony_ci#define CEC_OPCODE_TIMER_STATUS 0x35 8681bd4fe43Sopenharmony_ci 8691bd4fe43Sopenharmony_ci/* <CEC Version> Used to indicate the supported CEC version, in response to a <Get CEC Version> */ 8701bd4fe43Sopenharmony_ci#define CEC_OPCODE_CEC_VERSION 0x9E 8711bd4fe43Sopenharmony_ci 8721bd4fe43Sopenharmony_ci/* <Get CEC Version> Used by a device to enquire which version of CEC the target supports */ 8731bd4fe43Sopenharmony_ci#define CEC_OPCODE_GET_CEC_VERSION 0x9F 8741bd4fe43Sopenharmony_ci 8751bd4fe43Sopenharmony_ci/* <Give Physical Address> A request to a device to return its physical address. */ 8761bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_PHYSICAL_ADDRESS 0x83 8771bd4fe43Sopenharmony_ci 8781bd4fe43Sopenharmony_ci/* 8791bd4fe43Sopenharmony_ci * <Report Physical Address> Used to inform all other devices of the mapping between 8801bd4fe43Sopenharmony_ci * physical and logical address of the initiator. 8811bd4fe43Sopenharmony_ci */ 8821bd4fe43Sopenharmony_ci#define CEC_OPCODE_REPORT_PHYSICAL_ADDRESS 0x84 8831bd4fe43Sopenharmony_ci 8841bd4fe43Sopenharmony_ci/* 8851bd4fe43Sopenharmony_ci * Get Menu Language> Sent by a device capable of character generation (for OSD and Menus) to 8861bd4fe43Sopenharmony_ci * a TV in order to discover the currently selected Menu language. 8871bd4fe43Sopenharmony_ci * Also used by a TV during installation to discover the currently set menu language of other devices. 8881bd4fe43Sopenharmony_ci */ 8891bd4fe43Sopenharmony_ci#define CEC_OPCODE_GET_MENU_LANGUAGE 0x91 8901bd4fe43Sopenharmony_ci 8911bd4fe43Sopenharmony_ci/* <Set Menu Language> Used by a TV or another device to indicate the menu language. */ 8921bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_MENU_LANGUAGE 0x32 8931bd4fe43Sopenharmony_ci 8941bd4fe43Sopenharmony_ci/* <Deck Control> Used to control a device's media functions. */ 8951bd4fe43Sopenharmony_ci#define CEC_OPCODE_DECK_CONTROL 0x42 8961bd4fe43Sopenharmony_ci/* <Deck Status> Used to provide a deck's status to the initiator of the <Give Deck Status> message. */ 8971bd4fe43Sopenharmony_ci#define CEC_OPCODE_DECK_STATUS 0x1B 8981bd4fe43Sopenharmony_ci/* 8991bd4fe43Sopenharmony_ci * <Give Deck Status> Used to request the status of a device, 9001bd4fe43Sopenharmony_ci * regardless of whether or not it is the current active source. 9011bd4fe43Sopenharmony_ci */ 9021bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_DECK_STATUS 0x1A 9031bd4fe43Sopenharmony_ci 9041bd4fe43Sopenharmony_ci/* <Play> Used to control the playback behaviour of a source device. */ 9051bd4fe43Sopenharmony_ci#define CEC_OPCODE_PLAY 0x41 9061bd4fe43Sopenharmony_ci 9071bd4fe43Sopenharmony_ci/* <Give Tuner Device Status> Used to request the status of a tuner device. */ 9081bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_TUNER_DEVICE_STATUS 0x08 9091bd4fe43Sopenharmony_ci 9101bd4fe43Sopenharmony_ci/* <Select Analogue Service> Directly selects an Analogue TV service */ 9111bd4fe43Sopenharmony_ci#define CEC_OPCODE_SELECT_ANALOGUE_SERVICE 0x92 9121bd4fe43Sopenharmony_ci 9131bd4fe43Sopenharmony_ci/* <Select Digital Service> Directly selects a Digital TV, Radio or Data Broadcast Service */ 9141bd4fe43Sopenharmony_ci#define CEC_OPCODE_SELECT_DIGITAL_SERVICE 0x93 9151bd4fe43Sopenharmony_ci 9161bd4fe43Sopenharmony_ci/* 9171bd4fe43Sopenharmony_ci * <Tuner Device Status> Use by a tuner device to provide its status to 9181bd4fe43Sopenharmony_ci * the initiator of the <Give Tuner Device Status> message. 9191bd4fe43Sopenharmony_ci */ 9201bd4fe43Sopenharmony_ci#define CEC_OPCODE_TUNER_DEVICE_STATUS 0x07 9211bd4fe43Sopenharmony_ci 9221bd4fe43Sopenharmony_ci/* <Tuner Step Decrement> Used to tune to next lowest service in a tuner's service list. Can be used for PIP. */ 9231bd4fe43Sopenharmony_ci#define CEC_OPCODE_TUNER_STEP_DECREMENT 0x06 9241bd4fe43Sopenharmony_ci 9251bd4fe43Sopenharmony_ci/* 9261bd4fe43Sopenharmony_ci * <Tuner Step Increment> Used to tune to next highest 9271bd4fe43Sopenharmony_ci * service in a tuner's service list. Can be used for PIP. 9281bd4fe43Sopenharmony_ci */ 9291bd4fe43Sopenharmony_ci#define CEC_OPCODE_TUNER_STEP_INCREMENT 0x05 9301bd4fe43Sopenharmony_ci 9311bd4fe43Sopenharmony_ci/* <Device Vendor ID> Reports the vendor ID of this device. */ 9321bd4fe43Sopenharmony_ci#define CEC_OPCODE_DEVICE_VENDOR_ID 0x87 9331bd4fe43Sopenharmony_ci 9341bd4fe43Sopenharmony_ci/* <Give Device Vendor ID> Requests the Vendor ID from a device. */ 9351bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_DEVICE_VENDOR_ID 0x8C 9361bd4fe43Sopenharmony_ci 9371bd4fe43Sopenharmony_ci/* <Vendor Command> Allows vendor specific commands to be sent between two devices. */ 9381bd4fe43Sopenharmony_ci#define CEC_OPCODE_VENDOR_COMMAND 0x89 9391bd4fe43Sopenharmony_ci 9401bd4fe43Sopenharmony_ci/* <Vendor Command With ID> Allows vendor specific commands to be sent between two devices or broadcast. */ 9411bd4fe43Sopenharmony_ci#define CEC_OPCODE_VENDOR_COMMAND_WITH_ID 0xA0 9421bd4fe43Sopenharmony_ci 9431bd4fe43Sopenharmony_ci/* <Vendor Remote Button Down> Indicates that a remote control button has been depressed. */ 9441bd4fe43Sopenharmony_ci#define CEC_OPCODE_VENDOR_REMOTE_BUTTON_DOWN 0x8A 9451bd4fe43Sopenharmony_ci 9461bd4fe43Sopenharmony_ci/* 9471bd4fe43Sopenharmony_ci * <Vendor Remote Button Up> Indicates that a remote control button 9481bd4fe43Sopenharmony_ci * (the last button pressed indicated by the Vendor Remote Button Down message) has been released. 9491bd4fe43Sopenharmony_ci */ 9501bd4fe43Sopenharmony_ci#define CEC_OPCODE_VENDOR_REMOTE_BUTTON_UP 0x8B 9511bd4fe43Sopenharmony_ci 9521bd4fe43Sopenharmony_ci/* <Set OSD String> Used to send a text message to output on a TV. */ 9531bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_OSD_STRING 0x64 9541bd4fe43Sopenharmony_ci 9551bd4fe43Sopenharmony_ci/* <Give OSD Name> Used to request the preferred OSD name of a device for use in menus associated with that device. */ 9561bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_OSD_NAME 0x46 9571bd4fe43Sopenharmony_ci 9581bd4fe43Sopenharmony_ci/* <Set OSD Name> Used to set the preferred OSD name of a device for use in menus associated with that device. */ 9591bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_OSD_NAME 0x47 9601bd4fe43Sopenharmony_ci 9611bd4fe43Sopenharmony_ci/* 9621bd4fe43Sopenharmony_ci * <Menu Request> A request from the TV for a device 9631bd4fe43Sopenharmony_ci * to show/remove a menu or to query if a device is currently showing a menu. 9641bd4fe43Sopenharmony_ci */ 9651bd4fe43Sopenharmony_ci#define CEC_OPCODE_MENU_REQUEST 0x8D 9661bd4fe43Sopenharmony_ci 9671bd4fe43Sopenharmony_ci/* 9681bd4fe43Sopenharmony_ci * <Menu Status> Used to indicate to the TV that the device 9691bd4fe43Sopenharmony_ci * is showing/has removed a menu and requests the remote control keys to be passed though. 9701bd4fe43Sopenharmony_ci */ 9711bd4fe43Sopenharmony_ci#define CEC_OPCODE_MENU_STATUS 0x8E 9721bd4fe43Sopenharmony_ci 9731bd4fe43Sopenharmony_ci/* 9741bd4fe43Sopenharmony_ci * <User Control Pressed> Used to indicate that the user 9751bd4fe43Sopenharmony_ci * pressed a remote control button or switched from one remote control button to another. 9761bd4fe43Sopenharmony_ci */ 9771bd4fe43Sopenharmony_ci#define CEC_OPCODE_USER_CONTROL_PRESSED 0x44 9781bd4fe43Sopenharmony_ci 9791bd4fe43Sopenharmony_ci/* 9801bd4fe43Sopenharmony_ci * <User Control Released> Indicates that user released a remote control button 9811bd4fe43Sopenharmony_ci * (the last one indicated by the <User Control Pressed> message) 9821bd4fe43Sopenharmony_ci */ 9831bd4fe43Sopenharmony_ci#define CEC_OPCODE_USER_CONTROL_RELEASED 0x45 9841bd4fe43Sopenharmony_ci 9851bd4fe43Sopenharmony_ci/* <Give Device Power Status> Used to determine the current power status of a target device */ 9861bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_DEVICE_POWER_STATUS 0x8F 9871bd4fe43Sopenharmony_ci 9881bd4fe43Sopenharmony_ci/* <Report Power Status> Used to inform a requesting device of the current power status */ 9891bd4fe43Sopenharmony_ci#define CEC_OPCODE_REPORT_POWER_STATUS 0x90 9901bd4fe43Sopenharmony_ci 9911bd4fe43Sopenharmony_ci/* <Give Audio Status> Requests an amplifier to send its volume and mute status */ 9921bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_AUDIO_STATUS 0x71 9931bd4fe43Sopenharmony_ci 9941bd4fe43Sopenharmony_ci/* <Give System Audio Mode Status> Requests the status of the System Audio Mode */ 9951bd4fe43Sopenharmony_ci#define CEC_OPCODE_GIVE_SYSTEM_AUDIO_MODE_STATUS 0x7D 9961bd4fe43Sopenharmony_ci 9971bd4fe43Sopenharmony_ci/* <Report Audio Status> Reports an amplifier's volume and mute status */ 9981bd4fe43Sopenharmony_ci#define CEC_OPCODE_REPORT_AUDIO_STATUS 0x7A 9991bd4fe43Sopenharmony_ci 10001bd4fe43Sopenharmony_ci/* <Set System Audio Mode> Turns the System Audio Mode On or Off. */ 10011bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_SYSTEM_AUDIO_MODE 0x72 10021bd4fe43Sopenharmony_ci 10031bd4fe43Sopenharmony_ci/* 10041bd4fe43Sopenharmony_ci * <System Audio Mode Request> A device implementing System Audio Control and 10051bd4fe43Sopenharmony_ci * which has volume control RC buttons (eg TV or STB) requests to use System Audio Mode to the amplifier. 10061bd4fe43Sopenharmony_ci */ 10071bd4fe43Sopenharmony_ci#define CEC_OPCODE_SYSTEM_AUDIO_MODE_REQUEST 0x70 10081bd4fe43Sopenharmony_ci 10091bd4fe43Sopenharmony_ci/* <System Audio Mode Status> Reports the current status of the System Audio Mode */ 10101bd4fe43Sopenharmony_ci#define CEC_OPCODE_SYSTEM_AUDIO_MODE_STATUS 0x7E 10111bd4fe43Sopenharmony_ci 10121bd4fe43Sopenharmony_ci/* <Set Audio Rate> Used to control audio rate from Source Device. */ 10131bd4fe43Sopenharmony_ci#define CEC_OPCODE_SET_AUDIO_RATE 0x9A 10141bd4fe43Sopenharmony_ci 10151bd4fe43Sopenharmony_ci/* POLL message have no opcode, So, we just use this value. */ 10161bd4fe43Sopenharmony_ci#define CEC_OPCODE_POLLING_MESSAGE 0xFE 10171bd4fe43Sopenharmony_ci 10181bd4fe43Sopenharmony_citypedef enum hiUNF_CEC_LOGICALADD_E { 10191bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_TV, 10201bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_RECORDDEV_1, 10211bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_RECORDDEV_2, 10221bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_TUNER_1, 10231bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_PLAYDEV_1, 10241bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_AUDIOSYSTEM, 10251bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_TUNER_2, 10261bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_TUNER_3, 10271bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_PLAYDEV_2, 10281bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_RECORDDEV_3, 10291bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_TUNER_4, 10301bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_PLAYDEV_3, 10311bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_RESERVED_1, 10321bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_RESERVED_2, 10331bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_SPECIALUSE, 10341bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_BROADCAST, 10351bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_BUTT 10361bd4fe43Sopenharmony_ci} HI_CEC_LOGICALADD_E; 10371bd4fe43Sopenharmony_ci 10381bd4fe43Sopenharmony_citypedef enum hiUNF_CEC_CMDTYPE_E { 10391bd4fe43Sopenharmony_ci HI_CEC_STRUCTCOMMAND, 10401bd4fe43Sopenharmony_ci HI_CEC_RAWCOMMAND, 10411bd4fe43Sopenharmony_ci HI_CEC_BUTT 10421bd4fe43Sopenharmony_ci} HI_CEC_CMDTYPE_E; 10431bd4fe43Sopenharmony_ci 10441bd4fe43Sopenharmony_citypedef struct hiUNF_CEC_RAWDATA_S { 10451bd4fe43Sopenharmony_ci hi_u8 u8Length; 10461bd4fe43Sopenharmony_ci hi_u8 u8Data[15]; 10471bd4fe43Sopenharmony_ci} HI_CEC_RAWDATA_S; 10481bd4fe43Sopenharmony_ci 10491bd4fe43Sopenharmony_citypedef enum hiUNF_CEC_UICMD_E { 10501bd4fe43Sopenharmony_ci HI_CEC_UICMD_SELECT, 10511bd4fe43Sopenharmony_ci HI_CEC_UICMD_UP, 10521bd4fe43Sopenharmony_ci HI_CEC_UICMD_DOWN, 10531bd4fe43Sopenharmony_ci HI_CEC_UICMD_LEFT, 10541bd4fe43Sopenharmony_ci HI_CEC_UICMD_RIGHT, 10551bd4fe43Sopenharmony_ci HI_CEC_UICMD_RIGHT_UP, 10561bd4fe43Sopenharmony_ci HI_CEC_UICMD_RIGHT_DOWN, 10571bd4fe43Sopenharmony_ci HI_CEC_UICMD_LEFT_UP, 10581bd4fe43Sopenharmony_ci HI_CEC_UICMD_LEFT_DOWN, 10591bd4fe43Sopenharmony_ci HI_CEC_UICMD_ROOT_MENU, 10601bd4fe43Sopenharmony_ci HI_CEC_UICMD_SETUP_MENU, 10611bd4fe43Sopenharmony_ci HI_CEC_UICMD_CONTENTS_MENU, 10621bd4fe43Sopenharmony_ci HI_CEC_UICMD_FAVORITE_MENU, 10631bd4fe43Sopenharmony_ci HI_CEC_UICMD_EXIT, 10641bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_0 = 0x20, 10651bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_1, 10661bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_2, 10671bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_3, 10681bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_4, 10691bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_5, 10701bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_6, 10711bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_7, 10721bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_8, 10731bd4fe43Sopenharmony_ci HI_CEC_UICMD_NUM_9, 10741bd4fe43Sopenharmony_ci HI_CEC_UICMD_DOT, 10751bd4fe43Sopenharmony_ci HI_CEC_UICMD_ENTER, 10761bd4fe43Sopenharmony_ci HI_CEC_UICMD_CLEAR, 10771bd4fe43Sopenharmony_ci HI_CEC_UICMD_NEXT_FAVORITE = 0x2F, 10781bd4fe43Sopenharmony_ci HI_CEC_UICMD_CHANNEL_UP, 10791bd4fe43Sopenharmony_ci HI_CEC_UICMD_CHANNEL_DOWN, 10801bd4fe43Sopenharmony_ci HI_CEC_UICMD_PREVIOUS_CHANNEL, 10811bd4fe43Sopenharmony_ci HI_CEC_UICMD_SOUND_SELECT, 10821bd4fe43Sopenharmony_ci HI_CEC_UICMD_INPUT_SELECT, 10831bd4fe43Sopenharmony_ci HI_CEC_UICMD_DISPLAY_INFORMATION, 10841bd4fe43Sopenharmony_ci HI_CEC_UICMD_HELP, 10851bd4fe43Sopenharmony_ci HI_CEC_UICMD_PAGE_UP, 10861bd4fe43Sopenharmony_ci HI_CEC_UICMD_PAGE_DOWN, 10871bd4fe43Sopenharmony_ci HI_CEC_UICMD_POWER = 0x40, 10881bd4fe43Sopenharmony_ci HI_CEC_UICMD_VOLUME_UP, 10891bd4fe43Sopenharmony_ci HI_CEC_UICMD_VOLUME_DOWN, 10901bd4fe43Sopenharmony_ci HI_CEC_UICMD_MUTE, 10911bd4fe43Sopenharmony_ci HI_CEC_UICMD_PLAY, 10921bd4fe43Sopenharmony_ci HI_CEC_UICMD_STOP, 10931bd4fe43Sopenharmony_ci HI_CEC_UICMD_PAUSE, 10941bd4fe43Sopenharmony_ci HI_CEC_UICMD_RECORD, 10951bd4fe43Sopenharmony_ci HI_CEC_UICMD_REWIND, 10961bd4fe43Sopenharmony_ci HI_CEC_UICMD_FAST_FORWARD, 10971bd4fe43Sopenharmony_ci HI_CEC_UICMD_EJECT, 10981bd4fe43Sopenharmony_ci HI_CEC_UICMD_FORWARD, 10991bd4fe43Sopenharmony_ci HI_CEC_UICMD_BACKWARD, 11001bd4fe43Sopenharmony_ci HI_CEC_UICMD_STOP_RECORD, 11011bd4fe43Sopenharmony_ci HI_CEC_UICMD_PAUSE_RECORD, 11021bd4fe43Sopenharmony_ci HI_CEC_UICMD_ANGLE = 0x50, 11031bd4fe43Sopenharmony_ci HI_CEC_UICMD_SUBPICTURE, 11041bd4fe43Sopenharmony_ci HI_CEC_UICMD_VIDEO_ON_DEMAND, 11051bd4fe43Sopenharmony_ci HI_CEC_UICMD_ELECTRONIC_PROGRAM_GUIDE, 11061bd4fe43Sopenharmony_ci HI_CEC_UICMD_TIMER_PROGRAMMING, 11071bd4fe43Sopenharmony_ci HI_CEC_UICMD_INITIAL_CONFIGURATION, 11081bd4fe43Sopenharmony_ci HI_CEC_UICMD_PLAY_FUNCTION = 0x60, 11091bd4fe43Sopenharmony_ci HI_CEC_UICMD_PAUSE_PLAY_FUNCTION, 11101bd4fe43Sopenharmony_ci HI_CEC_UICMD_RECORD_FUNCTION, 11111bd4fe43Sopenharmony_ci HI_CEC_UICMD_PAUSE_RECORD_FUNCTION, 11121bd4fe43Sopenharmony_ci HI_CEC_UICMD_STOP_FUNCTION, 11131bd4fe43Sopenharmony_ci HI_CEC_UICMD_MUTE_FUNCTION, 11141bd4fe43Sopenharmony_ci HI_CEC_UICMD_RESTORE_VOLUME_FUNCTION, 11151bd4fe43Sopenharmony_ci HI_CEC_UICMD_TUNE_FUNCTION, 11161bd4fe43Sopenharmony_ci HI_CEC_UICMD_SELECT_MEDIA_FUNCTION, 11171bd4fe43Sopenharmony_ci HI_CEC_UICMD_SELECT_AV_INPUT_FUNCTION, 11181bd4fe43Sopenharmony_ci HI_CEC_UICMD_SELECT_AUDIO_INPUT_FUNCTION, 11191bd4fe43Sopenharmony_ci HI_CEC_UICMD_POWER_TOGGLE_FUNCTION, 11201bd4fe43Sopenharmony_ci HI_CEC_UICMD_POWER_OFF_FUNCTION, 11211bd4fe43Sopenharmony_ci HI_CEC_UICMD_POWER_ON_FUNCTION, 11221bd4fe43Sopenharmony_ci HI_CEC_UICMD_F1_BLUE = 0x71, 11231bd4fe43Sopenharmony_ci HI_CEC_UICMD_F2_RED, 11241bd4fe43Sopenharmony_ci HI_CEC_UICMD_F3_GREEN, 11251bd4fe43Sopenharmony_ci HI_CEC_UICMD_F4_YELLOW, 11261bd4fe43Sopenharmony_ci HI_CEC_UICMD_F5, 11271bd4fe43Sopenharmony_ci HI_CEC_UICMD_DATA 11281bd4fe43Sopenharmony_ci} HI_CEC_UICMD_E; /* User Control Code */ 11291bd4fe43Sopenharmony_ci 11301bd4fe43Sopenharmony_citypedef struct hiUNF_HDMI_CEC_CMD_S { 11311bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_E enSrcAdd; 11321bd4fe43Sopenharmony_ci HI_CEC_LOGICALADD_E enDstAdd; 11331bd4fe43Sopenharmony_ci hi_u8 u8Opcode; 11341bd4fe43Sopenharmony_ci HI_CEC_RAWDATA_S stRawData; 11351bd4fe43Sopenharmony_ci} HI_HDMI_CEC_CMD_S; 11361bd4fe43Sopenharmony_ci 11371bd4fe43Sopenharmony_citypedef struct hiUNF_HDMI_CEC_STATUS_S { 11381bd4fe43Sopenharmony_ci hi_bool bEnable; 11391bd4fe43Sopenharmony_ci hi_u8 u8PhysicalAddr[4]; /* CEC physic addr */ 11401bd4fe43Sopenharmony_ci hi_u8 u8LogicalAddr; /* CEC logic addr, default:0x03. */ 11411bd4fe43Sopenharmony_ci hi_u8 u8Network[HI_CEC_LOGICALADD_BUTT]; /* CEC's net work, 1:this device can answer cec command */ 11421bd4fe43Sopenharmony_ci} HI_HDMI_CEC_STATUS_S; 11431bd4fe43Sopenharmony_ci 11441bd4fe43Sopenharmony_citypedef hi_void (*HI_HDMI_CECCALLBACK)(HI_HDMI_ID_E enHdmi, HI_HDMI_CEC_CMD_S *pstCECCmd, hi_void *pData); 11451bd4fe43Sopenharmony_ci 11461bd4fe43Sopenharmony_citypedef struct hiHDMI_CECCALLBACK_FUNC_S { 11471bd4fe43Sopenharmony_ci HI_HDMI_CECCALLBACK pfnCecCallback; /* Event handling callback function */ 11481bd4fe43Sopenharmony_ci hi_void *pPrivateData; /* Private data of the CEC callback functions and parameters */ 11491bd4fe43Sopenharmony_ci} HI_HDMI_CECCALLBACK_FUNC_S; 11501bd4fe43Sopenharmony_ci 11511bd4fe43Sopenharmony_citypedef enum hiHDMI_TRACE_LEN_E { 11521bd4fe43Sopenharmony_ci HI_HDMI_TRACE_LEN_0, 11531bd4fe43Sopenharmony_ci HI_HDMI_TRACE_LEN_1, 11541bd4fe43Sopenharmony_ci HI_HDMI_TRACE_LEN_2, 11551bd4fe43Sopenharmony_ci HI_HDMI_TRACE_LEN_BUTT 11561bd4fe43Sopenharmony_ci} HI_HDMI_TRACE_LEN_E; 11571bd4fe43Sopenharmony_ci 11581bd4fe43Sopenharmony_citypedef struct hiHDMI_MOD_PARAM_S { 11591bd4fe43Sopenharmony_ci HI_HDMI_TRACE_LEN_E enTraceLen; /* Phy parameters selection. */ 11601bd4fe43Sopenharmony_ci} HI_HDMI_MOD_PARAM_S; 11611bd4fe43Sopenharmony_ci 11621bd4fe43Sopenharmony_citypedef enum hiERR_HDMI_CODE_E { 11631bd4fe43Sopenharmony_ci ERR_HDMI_NOT_INIT = 1, 11641bd4fe43Sopenharmony_ci ERR_HDMI_INVALID_PARA, 11651bd4fe43Sopenharmony_ci ERR_HDMI_NUL_PTR, 11661bd4fe43Sopenharmony_ci ERR_HDMI_DEV_NOT_OPEN, 11671bd4fe43Sopenharmony_ci ERR_HDMI_DEV_NOT_CONNECT, 11681bd4fe43Sopenharmony_ci ERR_HDMI_READ_SINK_FAILED, 11691bd4fe43Sopenharmony_ci ERR_HDMI_INIT_ALREADY, 11701bd4fe43Sopenharmony_ci ERR_HDMI_CALLBACK_ALREADY, 11711bd4fe43Sopenharmony_ci ERR_HDMI_INVALID_CALLBACK, 11721bd4fe43Sopenharmony_ci ERR_HDMI_FEATURE_NO_SUPPORT, 11731bd4fe43Sopenharmony_ci ERR_HDMI_BUS_BUSY, 11741bd4fe43Sopenharmony_ci ERR_HDMI_READ_EVENT_FAILED, 11751bd4fe43Sopenharmony_ci ERR_HDMI_NOT_START, 11761bd4fe43Sopenharmony_ci ERR_HDMI_READ_EDID_FAILED, 11771bd4fe43Sopenharmony_ci ERR_HDMI_INIT_FAILED, 11781bd4fe43Sopenharmony_ci ERR_HDMI_CREATE_TESK_FAILED, 11791bd4fe43Sopenharmony_ci ERR_HDMI_MALLOC_FAILED, 11801bd4fe43Sopenharmony_ci ERR_HDMI_FREE_FAILED, 11811bd4fe43Sopenharmony_ci ERR_HDMI_PTHREAD_CREATE_FAILED, 11821bd4fe43Sopenharmony_ci ERR_HDMI_PTHREAD_JOIN_FAILED, 11831bd4fe43Sopenharmony_ci ERR_HDMI_STRATEGY_FAILED, 11841bd4fe43Sopenharmony_ci ERR_HDMI_SET_ATTR_FAILED, 11851bd4fe43Sopenharmony_ci ERR_HDMI_CALLBACK_NOT_REGISTER, 11861bd4fe43Sopenharmony_ci ERR_HDMI_CEC_CALLBACK_REREGISTER, 11871bd4fe43Sopenharmony_ci ERR_HDMI_UNKNOWN_COMMAND, 11881bd4fe43Sopenharmony_ci ERR_HDMI_MUTEX_LOCK_FAILED, 11891bd4fe43Sopenharmony_ci ERR_HDMI_CEC_NOT_ENABLE, 11901bd4fe43Sopenharmony_ci ERR_HDMI_CECCALLBACK_NOT_REG, 11911bd4fe43Sopenharmony_ci ERR_HDMI_BUTT 11921bd4fe43Sopenharmony_ci} ERR_HDMI_CODE_E; 11931bd4fe43Sopenharmony_ci 11941bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_NOT_INIT HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_NOT_INIT) 11951bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_INVALID_PARA HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_INVALID_PARA) 11961bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_NUL_PTR HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_NUL_PTR) 11971bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_DEV_NOT_OPEN HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_DEV_NOT_OPEN) 11981bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_DEV_NOT_CONNECT HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_DEV_NOT_CONNECT) 11991bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_READ_SINK_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_READ_SINK_FAILED) 12001bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_INIT_ALREADY HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_INIT_ALREADY) 12011bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_CALLBACK_ALREADY HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_CALLBACK_ALREADY) 12021bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_INVALID_CALLBACK HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_INVALID_CALLBACK) 12031bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_FEATURE_NO_SUPPORT HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_FEATURE_NO_SUPPORT) 12041bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_BUS_BUSY HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_BUS_BUSY) 12051bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_READ_EVENT_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_READ_EVENT_FAILED) 12061bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_NOT_START HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_NOT_START) 12071bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_READ_EDID_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_READ_EDID_FAILED) 12081bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_INIT_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_INIT_FAILED) 12091bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_CREATE_TESK_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_CREATE_TESK_FAILED) 12101bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_MALLOC_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_MALLOC_FAILED) 12111bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_FREE_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_FREE_FAILED) 12121bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_PTHREAD_CREATE_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_PTHREAD_CREATE_FAILED) 12131bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_PTHREAD_JOIN_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_PTHREAD_JOIN_FAILED) 12141bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_STRATEGY_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_STRATEGY_FAILED) 12151bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_SET_ATTR_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_SET_ATTR_FAILED) 12161bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_CEC_CALLBACK_REREGISTER HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_CEC_CALLBACK_REREGISTER) 12171bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_CALLBACK_NOT_REGISTER HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_CALLBACK_NOT_REGISTER) 12181bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_UNKNOWN_COMMAND HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_UNKNOWN_COMMAND) 12191bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_MUTEX_LOCK_FAILED HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_MUTEX_LOCK_FAILED) 12201bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_CEC_NOT_ENABLE HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_CEC_NOT_ENABLE) 12211bd4fe43Sopenharmony_ci#define HI_ERR_HDMI_CECCALLBACK_NOT_REG HI_DEF_ERR(HI_ID_HDMI, EN_ERR_LEVEL_ERROR, ERR_HDMI_CECCALLBACK_NOT_REG) 12221bd4fe43Sopenharmony_ci 12231bd4fe43Sopenharmony_ci#ifdef __cplusplus 12241bd4fe43Sopenharmony_ci#if __cplusplus 12251bd4fe43Sopenharmony_ci} 12261bd4fe43Sopenharmony_ci#endif 12271bd4fe43Sopenharmony_ci#endif 12281bd4fe43Sopenharmony_ci#endif 12291bd4fe43Sopenharmony_ci 1230