SemiDrive SSDK Appication Program Interface PTG3.0
g2dlite.h
Go to the documentation of this file.
1
9#ifndef G2DLITE_H__
10#define G2DLITE_H__
11
12#include <sdrv_common.h>
13
14typedef unsigned char u8;
15typedef unsigned short u16;
16typedef unsigned int u32;
17typedef unsigned long long u64;
18
19#define G2DLITE_LAYER_MAX_NUM 2
20/*LEN:"1"means one pair of 32-bit register addr + 32-bit register value*/
21#define G2DLITE_CMDFILE_MAX_LEN 512
22#define G2DLITE_CMDFILE_MAX_NUM 10
23
24#define G2DLITE_CMDFILE_MAX_MEM \
25 (G2DLITE_CMDFILE_MAX_LEN * G2DLITE_CMDFILE_MAX_NUM * 2)
26
30enum {
37
38};
39
43enum {
47};
48
50
51typedef enum {
62
63typedef enum { PD_NONE = 0, PD_SRC = 0x1, PD_DST = 0x2 } PD_LAYER_TYPE;
64
66typedef enum {
67 CLEAR = 0,
88
89struct rect_t {
94};
95
103};
104
106struct ckey_t {
110};
111
113struct rle_t {
118};
119
121struct clut_t {
124};
125
127struct pd_t {
134};
135
136struct fcopy_t {
141};
142
157};
158
167 struct rect_t src;
172 struct rect_t dst;
176 struct ckey_t ckey;
177 struct rle_t rle;
178 struct clut_t
181};
182
194};
195
199 struct pd_t pd_info;
200 struct g2dlite_bg_cfg
202 struct g2dlite_input_cfg
205};
206
210};
211
212enum {
218
220typedef struct {
221 unsigned char dirty;
222 unsigned int len;
224 unsigned int
227
229 unsigned long reg_base;
231 unsigned char write_mode;
232 unsigned int irq;
233 int (*irq_handler)(u32 irq, void *arg);
234 const struct g2dlite_ops *ops;
235 unsigned int inited;
237 void (*done_callback)(void);
238};
239
241 int (*init)(struct g2dlite_device *dev);
242 int (*reset)(struct g2dlite_device *dev);
243 int (*clut_index_set)(struct g2dlite_device *dev, char *clut_src);
244 int (*update)(struct g2dlite_device *dev, struct g2dlite_input *ins);
245 int (*rotation)(struct g2dlite_device *dev, struct g2dlite_input *ins);
246 int (*fill_rect)(struct g2dlite_device *dev, struct g2dlite_bg_cfg *bgcfg,
247 struct g2dlite_output_cfg *output);
248 int (*fastcopy)(struct g2dlite_device *dev, struct fcopy_t *in,
249 struct fcopy_t *out);
250 int (*enable)(struct g2dlite_device *dev);
251 int (*irq_handler)(u32 irq, void *arg);
252 int (*check_status)(struct g2dlite_device *dev);
253};
254
255extern const struct g2dlite_ops ops;
257 const struct g2dlite_config *g2dlite_cfg);
259 struct g2dlite_input *input);
261 struct g2dlite_input *input);
263 struct g2dlite_bg_cfg *bgcfg,
264 struct g2dlite_output_cfg *output);
266 struct fcopy_t *out);
268 char *clut_table);
269#endif /* G2DLITE_H__ */
rotation_type
Definition: g2dlite.h:51
@ ROTATION_TYPE_HFLIP
Definition: g2dlite.h:54
@ ROTATION_TYPE_VF_90
Definition: g2dlite.h:59
@ ROTATION_TYPE_HF_90
Definition: g2dlite.h:60
@ ROTATION_TYPE_VFLIP
Definition: g2dlite.h:55
@ ROTATION_TYPE_ROT_270
Definition: g2dlite.h:57
@ ROTATION_TYPE_NONE
Definition: g2dlite.h:52
@ ROTATION_TYPE_ROT_90
Definition: g2dlite.h:53
@ ROTATION_TYPE_ROT_180
Definition: g2dlite.h:56
PD_LAYER_TYPE
Definition: g2dlite.h:63
@ PD_NONE
Definition: g2dlite.h:63
@ PD_SRC
Definition: g2dlite.h:63
@ PD_DST
Definition: g2dlite.h:63
unsigned int u32
Definition: g2dlite.h:16
#define G2DLITE_CMDFILE_MAX_NUM
Definition: g2dlite.h:22
status_t sdrv_g2dlite_update(struct g2dlite_device *dev, struct g2dlite_input *input)
pd_mode_t
sdrv g2dlite Porter-DUFF mode type
Definition: g2dlite.h:66
@ CLEAR
Definition: g2dlite.h:67
@ DST_ATOP
Definition: g2dlite.h:77
@ DST_IN
Definition: g2dlite.h:73
@ DARKEN
Definition: g2dlite.h:79
@ SRC_SUB
Definition: g2dlite.h:85
@ OVERLAY
Definition: g2dlite.h:84
@ DES_SUB
Definition: g2dlite.h:86
@ SRC_OUT
Definition: g2dlite.h:74
@ DST
Definition: g2dlite.h:69
@ SRC_IN
Definition: g2dlite.h:72
@ SRC_ATOP
Definition: g2dlite.h:76
@ SRC
Definition: g2dlite.h:68
@ DST_OVER
Definition: g2dlite.h:71
@ XOR
Definition: g2dlite.h:78
@ ADD
Definition: g2dlite.h:83
@ LIGHTEN
Definition: g2dlite.h:80
@ MULTIPLY
Definition: g2dlite.h:81
@ DST_OUT
Definition: g2dlite.h:75
@ SCREEN
Definition: g2dlite.h:82
@ SRC_OVER
Definition: g2dlite.h:70
status_t sdrv_g2dlite_clut_setting(struct g2dlite_device *dev, char *clut_table)
@ BLEND_PIXEL_COVERAGE
Definition: g2dlite.h:49
@ BLEND_PIXEL_PREMULTI
Definition: g2dlite.h:49
@ BLEND_PIXEL_NONE
Definition: g2dlite.h:49
status_t sdrv_g2dlite_fastcopy(struct g2dlite_device *dev, struct fcopy_t *in, struct fcopy_t *out)
#define G2DLITE_LAYER_MAX_NUM
Definition: g2dlite.h:19
status_t sdrv_g2dlite_fill_rect(struct g2dlite_device *dev, struct g2dlite_bg_cfg *bgcfg, struct g2dlite_output_cfg *output)
status_t sdrv_g2dlite_probe(struct g2dlite_device *dev, const struct g2dlite_config *g2dlite_cfg)
unsigned short u16
Definition: g2dlite.h:15
status_t sdrv_g2dlite_rotaion(struct g2dlite_device *dev, struct g2dlite_input *input)
@ G2DLITE_DONE
Definition: g2dlite.h:46
@ G2DLITE_IDLE
Definition: g2dlite.h:44
@ G2DLITE_WORKING
Definition: g2dlite.h:45
@ G2DLITE_TYPE_NUM
Definition: g2dlite.h:216
@ G2DLITE_TYPE_SPIPE
Definition: g2dlite.h:214
@ G2DLITE_TYPE_APIPE
Definition: g2dlite.h:215
@ G2DLITE_TYPE_GPIPE
Definition: g2dlite.h:213
const struct g2dlite_ops ops
unsigned long long u64
Definition: g2dlite.h:17
@ SDRV_G2DLITE_STATUS_FAIL
Definition: g2dlite.h:32
@ SDRV_G2DLITE_STATUS_OK
Definition: g2dlite.h:31
@ SDRV_G2DLITE_STATUS_INVALID_PARAM
Definition: g2dlite.h:33
@ SDRV_G2DLITE_STATUS_TIMEOUT
Definition: g2dlite.h:35
unsigned char u8
Definition: g2dlite.h:14
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_G2DLITE
Definition: sdrv_common.h:49
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
@ SDRV_STATUS_FAIL
Definition: sdrv_common.h:73
@ SDRV_STATUS_OK
Definition: sdrv_common.h:72
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
Definition: g2dlite.h:96
u32 b_dn
Definition: g2dlite.h:101
u32 r_up
Definition: g2dlite.h:98
u32 g_up
Definition: g2dlite.h:100
u32 g_dn
Definition: g2dlite.h:99
u32 b_up
Definition: g2dlite.h:102
u32 r_dn
Definition: g2dlite.h:97
g2dlite ckey struct
Definition: g2dlite.h:106
u8 en
Definition: g2dlite.h:107
struct ckey_range_t range
Definition: g2dlite.h:109
u32 alpha
Definition: g2dlite.h:108
g2dlite clut struct
Definition: g2dlite.h:121
u32 en
Definition: g2dlite.h:122
u32 addr
Definition: g2dlite.h:123
cmdfile_info - command mode cmdfile info struct
Definition: g2dlite.h:220
unsigned int len
Definition: g2dlite.h:222
unsigned char dirty
Definition: g2dlite.h:221
unsigned int * arg
Definition: g2dlite.h:225
Definition: g2dlite.h:136
u32 width
Definition: g2dlite.h:138
u32 addr
Definition: g2dlite.h:137
u32 stride
Definition: g2dlite.h:140
u32 height
Definition: g2dlite.h:139
sdrv g2dlite backgound config struct
Definition: g2dlite.h:144
u32 en
Definition: g2dlite.h:145
PD_LAYER_TYPE pd_type
Definition: g2dlite.h:155
u32 color
Definition: g2dlite.h:147
u8 g_alpha
Definition: g2dlite.h:148
u8 zorder
Definition: g2dlite.h:149
u32 astride
Definition: g2dlite.h:154
u32 aaddr
Definition: g2dlite.h:151
u8 bpa
Definition: g2dlite.h:153
Definition: g2dlite.h:207
u32 base
Definition: g2dlite.h:208
u32 irq
Definition: g2dlite.h:209
Definition: g2dlite.h:228
unsigned char write_mode
Definition: g2dlite.h:231
int status
Definition: g2dlite.h:236
unsigned int inited
Definition: g2dlite.h:235
unsigned long reg_base
Definition: g2dlite.h:229
unsigned int irq
Definition: g2dlite.h:232
cmdfile_info cmd_info[G2DLITE_CMDFILE_MAX_NUM]
Definition: g2dlite.h:230
int(* irq_handler)(u32 irq, void *arg)
Definition: g2dlite.h:233
void(* done_callback)(void)
Definition: g2dlite.h:237
const struct g2dlite_ops * ops
Definition: g2dlite.h:234
sdrv g2dlite input config struct
Definition: g2dlite.h:160
PD_LAYER_TYPE pd_type
Definition: g2dlite.h:180
struct clut_t clut
Definition: g2dlite.h:178
u8 alpha
Definition: g2dlite.h:175
u32 zorder
Definition: g2dlite.h:166
u32 src_stride[4]
Definition: g2dlite.h:171
u64 addr[4]
Definition: g2dlite.h:169
struct rect_t src
Definition: g2dlite.h:167
struct rect_t dst
Definition: g2dlite.h:172
u32 fmt
Definition: g2dlite.h:165
u8 layer
Definition: g2dlite.h:161
struct rle_t rle
Definition: g2dlite.h:177
u32 blend
Definition: g2dlite.h:174
u8 layer_en
Definition: g2dlite.h:163
struct ckey_t ckey
Definition: g2dlite.h:176
sdrv g2dlite input struct
Definition: g2dlite.h:197
struct g2dlite_bg_cfg bg_layer
Definition: g2dlite.h:200
struct g2dlite_output_cfg output
Definition: g2dlite.h:204
struct pd_t pd_info
Definition: g2dlite.h:199
u8 layer_num
Definition: g2dlite.h:198
struct g2dlite_input_cfg layer[G2DLITE_LAYER_MAX_NUM]
Definition: g2dlite.h:202
Definition: g2dlite.h:240
int(* fastcopy)(struct g2dlite_device *dev, struct fcopy_t *in, struct fcopy_t *out)
Definition: g2dlite.h:248
int(* clut_index_set)(struct g2dlite_device *dev, char *clut_src)
Definition: g2dlite.h:243
int(* check_status)(struct g2dlite_device *dev)
Definition: g2dlite.h:252
int(* fill_rect)(struct g2dlite_device *dev, struct g2dlite_bg_cfg *bgcfg, struct g2dlite_output_cfg *output)
Definition: g2dlite.h:246
int(* init)(struct g2dlite_device *dev)
Definition: g2dlite.h:241
int(* reset)(struct g2dlite_device *dev)
Definition: g2dlite.h:242
int(* rotation)(struct g2dlite_device *dev, struct g2dlite_input *ins)
Definition: g2dlite.h:245
int(* enable)(struct g2dlite_device *dev)
Definition: g2dlite.h:250
int(* irq_handler)(u32 irq, void *arg)
Definition: g2dlite.h:251
int(* update)(struct g2dlite_device *dev, struct g2dlite_input *ins)
Definition: g2dlite.h:244
sdrv g2dlite output config struct
Definition: g2dlite.h:184
u64 o_x
Definition: g2dlite.h:188
u32 width
Definition: g2dlite.h:185
u32 stride[4]
Definition: g2dlite.h:192
u64 addr[4]
Definition: g2dlite.h:190
u32 rotation
Definition: g2dlite.h:193
u64 o_y
Definition: g2dlite.h:189
u32 height
Definition: g2dlite.h:186
u32 fmt
Definition: g2dlite.h:187
g2dlite Porter-DUFF struct
Definition: g2dlite.h:127
u32 en
Definition: g2dlite.h:128
u8 alpha_need
Definition: g2dlite.h:133
pd_mode_t mode
Definition: g2dlite.h:132
u32 zorder
Definition: g2dlite.h:130
Definition: disp.h:57
u32 y
Definition: g2dlite.h:91
u32 h
Definition: g2dlite.h:93
u32 w
Definition: g2dlite.h:92
u32 x
Definition: g2dlite.h:90
g2dlite RLE struct
Definition: g2dlite.h:113
u32 rle_y_checksum
Definition: g2dlite.h:116
u32 en
Definition: g2dlite.h:114
u32 rle_y_len
Definition: g2dlite.h:115
u32 rle_data_size
Definition: g2dlite.h:117