148 lines
5.7 KiB
C
148 lines
5.7 KiB
C
|
|
/*
|
||
|
|
* Copyright (c) Hunan Goke,Chengdu Goke,Shandong Goke. 2021. All rights reserved.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef __VENDOR_VO_H__
|
||
|
|
#define __VENDOR_VO_H__
|
||
|
|
|
||
|
|
#define CFG_MAXARGS 10
|
||
|
|
|
||
|
|
#define PIC_MAX_WIDTH 1920
|
||
|
|
#define PIC_MAX_HEIGHT 1080
|
||
|
|
#define PIC_MIN_LENTH 16
|
||
|
|
|
||
|
|
/* VO video output interface type */
|
||
|
|
#define VO_INTF_CVBS (0x01L<<0)
|
||
|
|
#define VO_INTF_YPBPR (0x01L<<1)
|
||
|
|
#define VO_INTF_VGA (0x01L<<2)
|
||
|
|
#define VO_INTF_BT656 (0x01L<<3)
|
||
|
|
#define VO_INTF_BT1120 (0x01L<<4)
|
||
|
|
#define VO_INTF_HDMI (0x01L<<5)
|
||
|
|
#define VO_INTF_LCD (0x01L<<6)
|
||
|
|
#define VO_INTF_BT656_H (0x01L<<7)
|
||
|
|
#define VO_INTF_BT656_L (0x01L<<8)
|
||
|
|
#define VO_INTF_LCD_6BIT (0x01L<<9)
|
||
|
|
#define VO_INTF_LCD_8BIT (0x01L<<10)
|
||
|
|
#define VO_INTF_LCD_16BIT (0x01L<<11)
|
||
|
|
#define VO_INTF_LCD_18BIT (0x01L<<12)
|
||
|
|
#define VO_INTF_LCD_24BIT (0x01L<<13)
|
||
|
|
#define VO_INTF_MIPI (0x01L<<14)
|
||
|
|
#define VO_INTF_MIPI_SLAVE (0x01L<<15)
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
VO_OUTPUT_PAL = 0, /* PAL standard*/
|
||
|
|
VO_OUTPUT_NTSC, /* NTSC standard */
|
||
|
|
|
||
|
|
VO_OUTPUT_1080P24, /* 1920 x 1080 at 24 Hz. */
|
||
|
|
VO_OUTPUT_1080P25, /* 1920 x 1080 at 25 Hz. */
|
||
|
|
VO_OUTPUT_1080P30, /* 1920 x 1080 at 30 Hz. */
|
||
|
|
|
||
|
|
VO_OUTPUT_720P50, /* 1280 x 720 at 50 Hz. */
|
||
|
|
VO_OUTPUT_720P60, /* 1280 x 720 at 60 Hz. */
|
||
|
|
VO_OUTPUT_1080I50, /* 1920 x 1080 at 50 Hz, interlace. */
|
||
|
|
VO_OUTPUT_1080I60, /* 1920 x 1080 at 60 Hz, interlace. */
|
||
|
|
VO_OUTPUT_1080P50, /* 1920 x 1080 at 50 Hz. */
|
||
|
|
VO_OUTPUT_1080P60, /* 1920 x 1080 at 60 Hz. */
|
||
|
|
|
||
|
|
VO_OUTPUT_576P50, /* 720 x 576 at 50 Hz. */
|
||
|
|
VO_OUTPUT_480P60, /* 720 x 480 at 60 Hz. */
|
||
|
|
|
||
|
|
VO_OUTPUT_800x600_60, /* VESA 800 x 600 at 60 Hz (non-interlaced) */
|
||
|
|
VO_OUTPUT_1024x768_60, /* VESA 1024 x 768 at 60 Hz (non-interlaced) */
|
||
|
|
VO_OUTPUT_1280x1024_60, /* VESA 1280 x 1024 at 60 Hz (non-interlaced) */
|
||
|
|
VO_OUTPUT_1366x768_60, /* VESA 1366 x 768 at 60 Hz (non-interlaced) */
|
||
|
|
VO_OUTPUT_1440x900_60, /* VESA 1440 x 900 at 60 Hz (non-interlaced) CVT Compliant */
|
||
|
|
VO_OUTPUT_1280x800_60, /* 1280*800@60Hz VGA@60Hz*/
|
||
|
|
VO_OUTPUT_1600x1200_60, /* VESA 1600 x 1200 at 60 Hz (non-interlaced) */
|
||
|
|
VO_OUTPUT_1680x1050_60, /* VESA 1680 x 1050 at 60 Hz (non-interlaced) */
|
||
|
|
VO_OUTPUT_1920x1200_60, /* VESA 1920 x 1600 at 60 Hz (non-interlaced) CVT (Reduced Blanking)*/
|
||
|
|
VO_OUTPUT_640x480_60, /* VESA 640 x 480 at 60 Hz (non-interlaced) CVT */
|
||
|
|
VO_OUTPUT_960H_PAL, /* ITU-R BT.1302 960 x 576 at 50 Hz (interlaced)*/
|
||
|
|
VO_OUTPUT_960H_NTSC, /* ITU-R BT.1302 960 x 480 at 60 Hz (interlaced)*/
|
||
|
|
VO_OUTPUT_1920x2160_30, /* 1920x2160_30 */
|
||
|
|
VO_OUTPUT_2560x1440_30, /* 2560x1440_30 */
|
||
|
|
VO_OUTPUT_2560x1440_60, /* 2560x1440_60 */
|
||
|
|
VO_OUTPUT_2560x1600_60, /* 2560x1600_60 */
|
||
|
|
VO_OUTPUT_3840x2160_24, /* 3840x2160_24 */
|
||
|
|
VO_OUTPUT_3840x2160_25, /* 3840x2160_25 */
|
||
|
|
VO_OUTPUT_3840x2160_30, /* 3840x2160_30 */
|
||
|
|
VO_OUTPUT_3840x2160_50, /* 3840x2160_50 */
|
||
|
|
VO_OUTPUT_3840x2160_60, /* 3840x2160_60 */
|
||
|
|
VO_OUTPUT_4096x2160_24, /* 4096x2160_24 */
|
||
|
|
VO_OUTPUT_4096x2160_25, /* 4096x2160_25 */
|
||
|
|
VO_OUTPUT_4096x2160_30, /* 4096x2160_30 */
|
||
|
|
VO_OUTPUT_4096x2160_50, /* 4096x2160_50 */
|
||
|
|
VO_OUTPUT_4096x2160_60, /* 4096x2160_60 */
|
||
|
|
VO_OUTPUT_320x240_60, /* For ota5182 at 60 Hz (8bit) */
|
||
|
|
VO_OUTPUT_320x240_50, /* For ili9342 at 50 Hz (6bit) */
|
||
|
|
VO_OUTPUT_240x320_50, /* For ili9341 at 50 Hz (6bit) */
|
||
|
|
VO_OUTPUT_240x320_60, /* For ili9341 at 60 Hz (16bit) */
|
||
|
|
VO_OUTPUT_800x600_50, /* For LCD at 50 Hz (24bit) */
|
||
|
|
VO_OUTPUT_720x1280_60, /* For MIPI DSI Tx 720 x1280 at 60 Hz */
|
||
|
|
VO_OUTPUT_1080x1920_60, /* For MIPI DSI Tx 1080x1920 at 60 Hz */
|
||
|
|
VO_OUTPUT_7680x4320_30, /* For HDMI2.0 at 30 Hz */
|
||
|
|
VO_OUTPUT_USER, /* User timing. */
|
||
|
|
|
||
|
|
VO_OUTPUT_BUTT
|
||
|
|
} vo_intf_sync;
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
VO_DEV_DHD0 = 0, /* high definition device */
|
||
|
|
VO_DEV_BUTT
|
||
|
|
} vo_dev;
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
VO_GRAPHC_G0 = 0,
|
||
|
|
VO_GRAPHC_G1 = 1,
|
||
|
|
VO_GRAPHC_BUTT
|
||
|
|
} vo_graphic;
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
VO_LAYER_VHD0 = 0,
|
||
|
|
VO_LAYER_VHD1 = 1,
|
||
|
|
VO_LAYER_VP = 2,
|
||
|
|
VO_LAYER_VSD0 = 3,
|
||
|
|
VO_LAYER_G0 = 4, /* fb0 */
|
||
|
|
VO_LAYER_G1 = 5, /* fb2 */
|
||
|
|
VO_LAYER_HC0 = 6, /* G2 is HC0 --- fb3 */
|
||
|
|
VO_LAYER_HC1 = 7, /* G3 is HC1 --- fb4 */
|
||
|
|
VO_LAYER_G4 = 8, /* fb1 */
|
||
|
|
VO_LAYER_WBC_G0 = 9,
|
||
|
|
VO_LAYER_WBC_G4 = 10,
|
||
|
|
VO_LAYER_WBC_D = 11,
|
||
|
|
VO_LAYER_BUTT
|
||
|
|
} gk_vo_layer;
|
||
|
|
|
||
|
|
#define VO_LAYER_G2 VO_LAYER_HC0
|
||
|
|
|
||
|
|
typedef enum {
|
||
|
|
VO_CSC_MATRIX_IDENTITY = 0, /* Identity CSC matrix. */
|
||
|
|
|
||
|
|
VO_CSC_MATRIX_BT601_TO_BT709, /* BT601 to BT709 */
|
||
|
|
VO_CSC_MATRIX_BT709_TO_BT601, /* BT709 to BT601 */
|
||
|
|
|
||
|
|
VO_CSC_MATRIX_BT601_TO_RGB_PC, /* BT601 to RGB */
|
||
|
|
VO_CSC_MATRIX_BT709_TO_RGB_PC, /* BT709 to RGB */
|
||
|
|
|
||
|
|
VO_CSC_MATRIX_RGB_TO_BT601_PC, /* RGB to BT601 FULL */
|
||
|
|
VO_CSC_MATRIX_RGB_TO_BT709_PC, /* RGB to BT709 FULL */
|
||
|
|
|
||
|
|
VO_CSC_MATRIX_RGB_TO_BT2020_PC, /* RGB to BT.2020 */
|
||
|
|
VO_CSC_MATRIX_BT2020_TO_RGB_PC, /* BT.2020 to RGB */
|
||
|
|
|
||
|
|
VO_CSC_MATRIX_RGB_TO_BT601_TV, /* RGB to BT601 LIMIT */
|
||
|
|
VO_CSC_MATRIX_RGB_TO_BT709_TV, /* RGB to BT709 LIMIT */
|
||
|
|
|
||
|
|
VO_CSC_MATRIX_BUTT
|
||
|
|
} vo_csc_matrix;
|
||
|
|
|
||
|
|
typedef struct {
|
||
|
|
unsigned int x;
|
||
|
|
unsigned int y;
|
||
|
|
unsigned int w;
|
||
|
|
unsigned int h;
|
||
|
|
} gk_vo_rect;
|
||
|
|
|
||
|
|
#endif
|
||
|
|
|