tizen 2.4 release
[profile/mobile/platform/kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc9630 / lcdc_types.h
1 #ifndef _LCDC_TYPES_H_
2 #define _LCDC_TYPES_H_
3
4 #include "sci_types.h"
5
6 //interrupt handle function declare
7 typedef void (*LCD_IRQ_FUNC) (void);
8
9 typedef enum _lcd_int_type_tag
10 {
11     LCD_INT_LCDC_DONE = 0,
12     LCD_INT_LCM_EOF,
13     LCD_INT_LCM_SOF,
14     LCD_INT_FMARK,
15     LCD_INT_MAX
16 } LCD_INT_TYPE_E;
17
18 typedef enum _lcd_layer_id_tag
19 {
20     LCD_LAYER_IMAGE,
21     LCD_LAYER_OSD1,
22     LCD_LAYER_OSD2,
23     LCD_LAYER_OSD3,
24 #if defined(PLATFORM_SC8800G) || defined(CONFIG_SC8810)
25     LCD_LAYER_OSD4,
26     LCD_LAYER_OSD5,
27 #endif
28     LCD_LAYER_ID_MAX
29 } LCD_LAYER_ID_E;
30
31 typedef enum _lcd_fmark_mode_tag
32 {
33     LCD_FMARK_DEVICE,
34     LCD_FMARK_NONE,
35     LCD_FMARK_MODE_MAX
36 } LCD_FMARK_MODE_E;
37
38 typedef enum _lcd_fmark_pol_tag
39 {
40     LCD_FMARK_HIGH,
41     LCD_FMARK_LOW,
42     LCD_FMARK_POL_MAX
43 } LCD_FMARK_POL_E;
44
45 typedef enum _lcd_upsample_mode_tag
46 {
47     LCD_UPSAMPLE_DUPLICATE,
48     LCD_UPSAMPLE_AVERAGE,
49     LCD_UPSAMPLE_MODE_MAX
50 } LCD_UPSAMPLE_MODE_E;
51
52 typedef enum _lcd_data_format_tag
53 {
54     LCD_YUV422 = 0,
55     LCD_YUV420,
56     LCD_YUV400,
57     LCD_RGB888,
58     LCD_RGB666,
59     LCD_RGB565,
60     LCD_RGB555,
61     LCD_GREY,
62     LCD_MAX
63 } LCD_DATA_FORMAT_E;
64
65 typedef enum _lcd_osd_alpha_tag
66 {
67     LCD_OSD_PIXEL_ALPHA = 0,
68     LCD_OSD_BLOCK_ALPHA,
69     LCD_OSD_MAX
70 } LCD_OSD_ALPHA_E;
71
72 typedef struct _lcd_postion_tag
73 {
74     uint16 x;
75     uint16 y;
76 } LCDC_POS_T;
77
78 typedef struct _lcdc_size_tag
79 {
80     uint16 w;
81     uint16 h;
82 } LCDC_SIZE_T;
83
84 typedef struct _lcd_rect_tag //rectangle
85 {
86     uint16  x;
87     uint16  y;
88     uint16  w;
89     uint16  h;
90 } LCDC_RECT_T;
91
92 typedef struct _lcd_data_addr_tag
93 {
94     uint32 y_addr;
95     uint32 uv_addr;
96 } LCD_DATA_ADDR_T;
97
98 typedef struct _lcd_img_blk_param_tag
99 {
100     LCDC_SIZE_T             src_size;
101     LCDC_RECT_T             src_trim_rect;
102     LCDC_POS_T              disp_pos;
103     LCD_DATA_ADDR_T         src_base_addr;
104     LCD_DATA_FORMAT_E       format;
105 #if defined(PLATFORM_SC8800G) || defined(CONFIG_SC8810)
106     uint32                 is_little_endian;
107 #else
108     BOOLEAN                 is_little_endian;
109 #endif
110     BOOLEAN                 layer_en;
111 } LCD_IMG_LAYER_PARAM_T;
112
113 typedef struct _lcd_osd_blk_param_tag
114 {
115     LCDC_SIZE_T             src_size;
116     LCDC_RECT_T             src_trim_rect;
117     LCDC_POS_T              disp_pos;
118     uint32                  src_base_addr;
119     uint32                  alpha_base_addr;
120     uint32                  grey_rgb;
121     uint8                   alpha;
122     LCD_DATA_FORMAT_E       format;
123     LCD_OSD_ALPHA_E         alpha_mode;
124 #if defined(PLATFORM_SC8800G) || defined(CONFIG_SC8810)
125     uint32                 is_little_endian;
126 #else
127     BOOLEAN                 is_little_endian;
128 #endif
129     BOOLEAN                 colorkey_en;
130     uint32                  colorkey;
131     BOOLEAN                 layer_en;
132 } LCD_OSD_LAYER_PARAM_T;
133
134 typedef struct _lcd_yuv2rgb_param_tag
135 {
136     LCD_UPSAMPLE_MODE_E     upsample_mode;
137     uint8                   contrast;           //0-255
138     uint8                   saturation;         //0-255
139     int16                   brightness;         //-256-256
140 } LCD_YUV2RGB_PARAM_T;
141
142 typedef struct _lcdc_cap_param_tag
143 {
144     LCDC_RECT_T             cap_rect;
145     LCDC_SIZE_T             dst_size;
146     LCDC_RECT_T             dst_trim_rect;
147     LCD_DATA_FORMAT_E       format;
148     uint32                  dst_base_addr;
149     BOOLEAN                 is_little_endian;
150     BOOLEAN                 cap_en;
151 } LCDC_CAP_PARAM_T;
152
153 #endif