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