13d0407baSopenharmony_ci/* 23d0407baSopenharmony_ci * Copyright (C) 2021 Rockchip Electronics Co., Ltd. 33d0407baSopenharmony_ci * Authors: 43d0407baSopenharmony_ci * Cerf Yu <cerf.yu@rock-chips.com> 53d0407baSopenharmony_ci * 63d0407baSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 73d0407baSopenharmony_ci * you may not use this file except in compliance with the License. 83d0407baSopenharmony_ci * You may obtain a copy of the License at 93d0407baSopenharmony_ci * 103d0407baSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 113d0407baSopenharmony_ci * 123d0407baSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 133d0407baSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 143d0407baSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 153d0407baSopenharmony_ci * See the License for the specific language governing permissions and 163d0407baSopenharmony_ci * limitations under the License. 173d0407baSopenharmony_ci */ 183d0407baSopenharmony_ci 193d0407baSopenharmony_ci#ifndef _RGA_IM2D_HARDWARE_H_ 203d0407baSopenharmony_ci#define _RGA_IM2D_HARDWARE_H_ 213d0407baSopenharmony_ci 223d0407baSopenharmony_ci#include "rga.h" 233d0407baSopenharmony_ci 243d0407baSopenharmony_citypedef enum { 253d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_V_ERR_INDEX = 0x0, 263d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_1_INDEX, 273d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_1_PLUS_INDEX, 283d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_INDEX, 293d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_LITE0_INDEX, 303d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_LITE1_INDEX, 313d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_ENHANCE_INDEX, 323d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_3_INDEX, 333d0407baSopenharmony_ci IM_RGA_HW_VERSION_MASK_INDEX, 343d0407baSopenharmony_ci} IM_RGA_HW_VERSION_INDEX; 353d0407baSopenharmony_ci 363d0407baSopenharmony_citypedef enum { 373d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_V_ERR = 1 << IM_RGA_HW_VERSION_RGA_V_ERR_INDEX, 383d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_1 = 1 << IM_RGA_HW_VERSION_RGA_1_INDEX, 393d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_1_PLUS = 1 << IM_RGA_HW_VERSION_RGA_1_PLUS_INDEX, 403d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2 = 1 << IM_RGA_HW_VERSION_RGA_2_INDEX, 413d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_LITE0 = 1 << IM_RGA_HW_VERSION_RGA_2_LITE0_INDEX, 423d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_LITE1 = 1 << IM_RGA_HW_VERSION_RGA_2_LITE1_INDEX, 433d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_2_ENHANCE = 1 << IM_RGA_HW_VERSION_RGA_2_ENHANCE_INDEX, 443d0407baSopenharmony_ci IM_RGA_HW_VERSION_RGA_3 = 1 << IM_RGA_HW_VERSION_RGA_3_INDEX, 453d0407baSopenharmony_ci IM_RGA_HW_VERSION_MASK = ~((~(unsigned int)0x0 << IM_RGA_HW_VERSION_MASK_INDEX) | 1), 463d0407baSopenharmony_ci}IM_RGA_HW_VERSION; 473d0407baSopenharmony_ci 483d0407baSopenharmony_citypedef enum { 493d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_ERROR_INDEX = 0, 503d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_INDEX, 513d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER_INDEX, 523d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_BPP_INDEX, 533d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT_INDEX, 543d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT_INDEX, 553d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT_INDEX, 563d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_10_BIT_INDEX, 573d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT_INDEX, 583d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT_INDEX, 593d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT_INDEX, 603d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_10_BIT_INDEX, 613d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_420_INDEX, 623d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_422_INDEX, 633d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_400_INDEX, 643d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_Y4_INDEX, 653d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGBA2BPP_INDEX, 663d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_MASK_INDEX, 673d0407baSopenharmony_ci} IM_RGA_SUPPORT_FORMAT_INDEX; 683d0407baSopenharmony_ci 693d0407baSopenharmony_citypedef enum { 703d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_ERROR = 1 << IM_RGA_SUPPORT_FORMAT_ERROR_INDEX, 713d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB = 1 << IM_RGA_SUPPORT_FORMAT_RGB_INDEX, 723d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER = 1 << IM_RGA_SUPPORT_FORMAT_RGB_OTHER_INDEX, 733d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_BPP = 1 << IM_RGA_SUPPORT_FORMAT_BPP_INDEX, 743d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT_INDEX, 753d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT_INDEX, 763d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT_INDEX, 773d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_10_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_10_BIT_INDEX, 783d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT_INDEX, 793d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT_INDEX, 803d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT_INDEX, 813d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_10_BIT = 1 << IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_10_BIT_INDEX, 823d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_420 = 1 << IM_RGA_SUPPORT_FORMAT_YUYV_420_INDEX, 833d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_422 = 1 << IM_RGA_SUPPORT_FORMAT_YUYV_422_INDEX, 843d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_400 = 1 << IM_RGA_SUPPORT_FORMAT_YUV_400_INDEX, 853d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_Y4 = 1 << IM_RGA_SUPPORT_FORMAT_Y4_INDEX, 863d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGBA2BPP = 1 << IM_RGA_SUPPORT_FORMAT_RGBA2BPP_INDEX, 873d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_MASK = ~((~(unsigned int)0x0 << IM_RGA_SUPPORT_FORMAT_MASK_INDEX) | 1), 883d0407baSopenharmony_ci} IM_RGA_SUPPORT_FORMAT; 893d0407baSopenharmony_ci 903d0407baSopenharmony_citypedef enum { 913d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ERROR_INDEX = 0, 923d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL_INDEX, 933d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE_INDEX, 943d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ROP_INDEX, 953d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_QUANTIZE_INDEX, 963d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_SRC1_R2Y_CSC_INDEX, 973d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_DST_FULL_CSC_INDEX, 983d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_FBC_INDEX, 993d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_BLEND_YUV_INDEX, 1003d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_BT2020_INDEX, 1013d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_MOSAIC_INDEX, 1023d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_OSD_INDEX, 1033d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_PRE_INTR_INDEX, 1043d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_MASK_INDEX, 1053d0407baSopenharmony_ci} IM_RGA_SUPPORT_FEATURE_INDEX; 1063d0407baSopenharmony_ci 1073d0407baSopenharmony_citypedef enum { 1083d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ERROR = 1 << IM_RGA_SUPPORT_FEATURE_ERROR_INDEX, 1093d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL = 1 << IM_RGA_SUPPORT_FEATURE_COLOR_FILL_INDEX, 1103d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE = 1 << IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE_INDEX, 1113d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ROP = 1 << IM_RGA_SUPPORT_FEATURE_ROP_INDEX, 1123d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_QUANTIZE = 1 << IM_RGA_SUPPORT_FEATURE_QUANTIZE_INDEX, 1133d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_SRC1_R2Y_CSC = 1 << IM_RGA_SUPPORT_FEATURE_SRC1_R2Y_CSC_INDEX, 1143d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_DST_FULL_CSC = 1 << IM_RGA_SUPPORT_FEATURE_DST_FULL_CSC_INDEX, 1153d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_FBC = 1 << IM_RGA_SUPPORT_FEATURE_FBC_INDEX, 1163d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_BLEND_YUV = 1 << IM_RGA_SUPPORT_FEATURE_BLEND_YUV_INDEX, 1173d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_BT2020 = 1 << IM_RGA_SUPPORT_FEATURE_BT2020_INDEX, 1183d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_MOSAIC = 1 << IM_RGA_SUPPORT_FEATURE_MOSAIC_INDEX, 1193d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_OSD = 1 << IM_RGA_SUPPORT_FEATURE_OSD_INDEX, 1203d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_PRE_INTR = 1 << IM_RGA_SUPPORT_FEATURE_PRE_INTR_INDEX, 1213d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_MASK = ~((~(unsigned int)0x0 << IM_RGA_SUPPORT_FEATURE_MASK_INDEX) | 1), 1223d0407baSopenharmony_ci} IM_RGA_SUPPORT_FEATURE; 1233d0407baSopenharmony_ci 1243d0407baSopenharmony_citypedef struct { 1253d0407baSopenharmony_ci unsigned int version; 1263d0407baSopenharmony_ci unsigned int input_resolution; 1273d0407baSopenharmony_ci unsigned int output_resolution; 1283d0407baSopenharmony_ci unsigned int byte_stride; 1293d0407baSopenharmony_ci unsigned int scale_limit; 1303d0407baSopenharmony_ci unsigned int performance; 1313d0407baSopenharmony_ci unsigned int input_format; 1323d0407baSopenharmony_ci unsigned int output_format; 1333d0407baSopenharmony_ci unsigned int feature; 1343d0407baSopenharmony_ci char reserved[24]; 1353d0407baSopenharmony_ci} rga_info_table_entry; 1363d0407baSopenharmony_ci 1373d0407baSopenharmony_citypedef struct { 1383d0407baSopenharmony_ci struct rga_version_t user; 1393d0407baSopenharmony_ci struct rga_version_t driver; 1403d0407baSopenharmony_ci} rga_dirver_bind_table_entry; 1413d0407baSopenharmony_ci 1423d0407baSopenharmony_ciconst rga_info_table_entry hw_info_table[] = { 1433d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_V_ERR , 0, 0, 0, 0, 0, 0, 0, 0, {0} }, 1443d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_1 , 8192, 2048, 4, 8, 1, 1453d0407baSopenharmony_ci /* input format */ 1463d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 1473d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 1483d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_BPP | 1493d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 1503d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 1513d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 1523d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 1533d0407baSopenharmony_ci /* output format */ 1543d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 1553d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 1563d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 1573d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 1583d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 1593d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 1603d0407baSopenharmony_ci /* feature */ 1613d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL | 1623d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE | 1633d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ROP, 1643d0407baSopenharmony_ci /* reserved */ 1653d0407baSopenharmony_ci {0} }, 1663d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_1_PLUS , 8192, 2048, 4, 8, 1, 1673d0407baSopenharmony_ci /* input format */ 1683d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 1693d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 1703d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_BPP | 1713d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 1723d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 1733d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 1743d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 1753d0407baSopenharmony_ci /* output format */ 1763d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 1773d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 1783d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 1793d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 1803d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 1813d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 1823d0407baSopenharmony_ci /* feature */ 1833d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL | 1843d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE, 1853d0407baSopenharmony_ci /* reserved */ 1863d0407baSopenharmony_ci {0} }, 1873d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_2 , 8192, 4096, 4, 16, 2, 1883d0407baSopenharmony_ci /* input format */ 1893d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 1903d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 1913d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 1923d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 1933d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 1943d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 1953d0407baSopenharmony_ci /* output format */ 1963d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 1973d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 1983d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 1993d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2003d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2013d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 2023d0407baSopenharmony_ci /* feature */ 2033d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL | 2043d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE | 2053d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ROP, 2063d0407baSopenharmony_ci /* reserved */ 2073d0407baSopenharmony_ci {0} }, 2083d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_2_LITE0 , 8192, 4096, 4, 8, 2, 2093d0407baSopenharmony_ci /* input format */ 2103d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2113d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 2123d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2133d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2143d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2153d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 2163d0407baSopenharmony_ci /* output format */ 2173d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2183d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 2193d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2203d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2213d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2223d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 2233d0407baSopenharmony_ci /* feature */ 2243d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL | 2253d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE | 2263d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ROP, 2273d0407baSopenharmony_ci /* reserved */ 2283d0407baSopenharmony_ci {0} }, 2293d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_2_LITE1 , 8192, 4096, 4, 8, 2, 2303d0407baSopenharmony_ci /* input format */ 2313d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2323d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 2333d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2343d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2353d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2363d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT | 2373d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT | 2383d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_10_BIT | 2393d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT | 2403d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_10_BIT, 2413d0407baSopenharmony_ci /* output format */ 2423d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2433d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 2443d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2453d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2463d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2473d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT, 2483d0407baSopenharmony_ci /* feature */ 2493d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL | 2503d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE, 2513d0407baSopenharmony_ci /* reserved */ 2523d0407baSopenharmony_ci {0} }, 2533d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_2_ENHANCE , 8192, 4096, 4, 16, 2, 2543d0407baSopenharmony_ci /* input format */ 2553d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2563d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 2573d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2583d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2593d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2603d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT | 2613d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT | 2623d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_10_BIT | 2633d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT | 2643d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_10_BIT, 2653d0407baSopenharmony_ci /* output format */ 2663d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2673d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB_OTHER | 2683d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2693d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_PLANNER_8_BIT | 2703d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2713d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_PLANNER_8_BIT | 2723d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_420 | 2733d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_422, 2743d0407baSopenharmony_ci /* feature */ 2753d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_FILL | 2763d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_COLOR_PALETTE | 2773d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_ROP, 2783d0407baSopenharmony_ci /* reserved */ 2793d0407baSopenharmony_ci {0} }, 2803d0407baSopenharmony_ci { IM_RGA_HW_VERSION_RGA_3 , 8176, 8128, 16, 8, 4, 2813d0407baSopenharmony_ci /* input format */ 2823d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2833d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2843d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2853d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT | 2863d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT | 2873d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_422, 2883d0407baSopenharmony_ci /* output format */ 2893d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_RGB | 2903d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_8_BIT | 2913d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_8_BIT | 2923d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_420_SEMI_PLANNER_10_BIT | 2933d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUV_422_SEMI_PLANNER_10_BIT | 2943d0407baSopenharmony_ci IM_RGA_SUPPORT_FORMAT_YUYV_422, 2953d0407baSopenharmony_ci /* feature */ 2963d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_FBC | 2973d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_BLEND_YUV | 2983d0407baSopenharmony_ci IM_RGA_SUPPORT_FEATURE_BT2020, 2993d0407baSopenharmony_ci /* reserved */ 3003d0407baSopenharmony_ci {0} }, 3013d0407baSopenharmony_ci}; 3023d0407baSopenharmony_ci 3033d0407baSopenharmony_ci/* The range of the version is [min, max), that is version >= min, version < max. */ 3043d0407baSopenharmony_ciconst rga_dirver_bind_table_entry driver_bind_table[] = { 3053d0407baSopenharmony_ci { { 0, 0, 0, "0.0.0" }, {0, 0, 0, "0.0.0" } }, 3063d0407baSopenharmony_ci { { 1, 0, 3, "1.0.3" }, {0, 0, 0, "0.0.0" } }, 3073d0407baSopenharmony_ci { { 1, 6, 0, "1.6.0" }, {1, 1, 5, "1.1.5" } }, 3083d0407baSopenharmony_ci { { 1, 7, 2, "1.7.2" }, {1, 2, 0, "1.2.0" } }, 3093d0407baSopenharmony_ci { { 1, 7, 3, "1.7.3" }, {1, 2, 4, "1.2.4" } }, 3103d0407baSopenharmony_ci}; 3113d0407baSopenharmony_ci 3123d0407baSopenharmony_ci#endif 313