display_io.h
3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#ifndef __DISPLAY_IO_H__
#define __DISPLAY_IO_H__
#include "kal_release.h"
#include "drv_features_display.h"
typedef enum
{
DISPLAY_RESULT_OK = 0,
DISPLAY_RESULT_INVALID_CODE, /* The input control code is invalid. */
DISPLAY_RESULT_INVALID_DATA, /* The input data is invalid. */
DISPLAY_RESULT_LCM_SLEEP_IN, /* This error will be returned when calling LCM operation when LCM is sleep in. */
DISPLAY_RESULT_CONTROL_FAIL /* For other errors. */
} DisplayResultEnum;
typedef enum
{
DISPLAY_IOCTL_INVALID = 0,
DISPLAY_IOCTL_SEPARATOR_USE_LCDCLK_S,/* ========================= */
DISPLAY_IOCTL_GET_SCREEN_INFO,
DISPLAY_IOCTL_GET_FRAMEBUFFER_ADDRESS,
DISPLAY_IOCTL_SEPARATOR_USE_LCDIF_S, /* ========================= */
/* CABC Features */
DISPLAY_IOCTL_CABC_QUERY_SUPPORT,
DISPLAY_IOCTL_CABC_SET_MODE,
DISPLAY_IOCTL_CABC_GET_MODE,
DISPLAY_IOCTL_CABC_SET_BRIGHTNESS,
/* LCM Settings */
DISPLAY_IOCTL_LCM_SET_ROTATE,
DISPLAY_IOCTL_LCM_SET_TEMP_COMPENSATE,
DISPLAY_IOCTL_LCM_SET_LINERATE,
DISPLAY_IOCTL_LCM_SET_CONTRAST,
DISPLAY_IOCTL_LCM_SET_BIAS,
DISPLAY_IOCTL_LCM_SET_POWER,
DISPLAY_IOCTL_LCM_SET_PARTIAL_DISPLAY,
DISPLAY_IOCTL_LCM_GET_PARTIAL_DISPLAY,
DISPLAY_IOCTL_LCM_SET_BRIGHT_LEVEL,
#ifdef DRV_LCD_3D_MODE_SUPPORT
DISPLAY_IOCTL_LCM_SET_3D_MODE,
#endif
/*ESD Check Feature*/
DISPLAY_IOCTL_ESD_CHECK,
DISPLAY_IOCTL_ESD_RESET,
DISPLAY_IOCTL_SEPARATOR_USE_LCDIF_E,/* ========================= */
DISPLAY_IOCTL_SEPARATOR_USE_LCDCLK_E,/* ========================= */
} DisplayCtrlCode;
typedef enum
{
DISPLAY_INVALID_DEVICE = 0,
DISPLAY_LCM0,
DISPLAY_LCM1
} DisplayDeviceEnum;
#ifdef DRV_LCD_3D_MODE_SUPPORT
typedef enum
{
DISPLAY_3D_MODE_OFF = 0,
DISPLAY_3D_MODE_PORTRAIT,
DISPLAY_3D_MODE_LANDSCAPE,
DISPLAY_3D_MODE_INVALID
} Display3DModeEnum;
typedef struct
{
Display3DModeEnum mode;
//for expend in the future
} Display3DMode_T;
#endif
typedef enum
{
DISPLAY_CABC_MODE_OFF = 0,
DISPLAY_CABC_MODE_UI,
DISPLAY_CABC_MODE_STILL,
DISPLAY_CABC_MODE_MOVING,
DISPLAY_CABC_MODE_INVALID
} DisplayCABCModeEnum;
/* DisplayCABC_T structure definition.
DISPLAY_IOCTL_CABC_QUERY_SUPPORT: [Input]: lcm_id [Output]: bSupport [Ignored]: mode
DISPLAY_IOCTL_CABC_SET_MODE: [Input]: lcm_id, mode [Ignored]: bSupport
DISPLAY_IOCTL_CABC_GET_MODE: [Input]: lcm_id [Output]: mode [Ignored]: bSupport
*/
typedef struct
{
kal_bool bSupport;
DisplayCABCModeEnum mode;
} DisplayCABC_T;
typedef struct
{
kal_uint8 duty_value;
} DisplayCABCBrightness_T;
typedef struct
{
kal_uint8 rotate_value;
} DisplayLCMRotate_T;
typedef struct
{
kal_uint32 screen_width;
kal_uint32 screen_height;
kal_uint32 color_depth;
} DisplayGetScreenInfo_T;
typedef struct
{
kal_uint8 compensate;
} DisplayLCMTempCompensate_T;
typedef struct
{
kal_uint8 linerate;
} DisplayLCMLineRate_T;
typedef struct
{
kal_uint8 contrast;
} DisplayLCMContrast_T;
typedef struct
{
kal_uint8 bias;
} DisplayLCMBias_T;
typedef struct
{
kal_bool bPowerOn;
} DisplayLCMPower_T;
typedef struct
{
// For partial display configure.
kal_bool bPartialOn;
kal_uint16 start_line;
kal_uint16 end_line;
// For querying partial display parameter.
kal_uint8 alignment;
} DisplayLCMPartialDisplay_T;
typedef struct
{
kal_uint8 bright_level;
} DisplayLCMBrightLevel_T;
typedef struct
{
kal_uint32 address;
} DisplayFrameBufferAddress_T;
/*ESD Check Feature*/
typedef struct
{
kal_bool bEsdHappened;
} LcdEsdCheck_T;
DisplayResultEnum DisplayIOControl(DisplayDeviceEnum device, DisplayCtrlCode code, void* pData);
#endif /* __DISPLAY_IO_H__ */