add hdmi driver
[firefly-linux-kernel-4.4.55.git] / drivers / video / display / screen / screen.h
1 #include <mach/board.h>
2
3 typedef enum _SCREEN_TYPE {
4     SCREEN_NULL = 0,
5     SCREEN_RGB,
6         SCREEN_MCU,
7     SCREEN_TVOUT,
8     SCREEN_HDMI,
9 } SCREEN_TYPE;
10
11 typedef enum _REFRESH_STAGE {
12     REFRESH_PRE = 0,
13     REFRESH_END,
14
15 } REFRESH_STAGE;
16
17
18 typedef enum _MCU_IOCTL {
19     MCU_WRCMD = 0,
20     MCU_WRDATA,
21     MCU_SETBYPASS,
22
23 } MCU_IOCTL;
24
25
26 typedef enum _MCU_STATUS {
27     MS_IDLE = 0,
28     MS_MCU,
29     MS_EBOOK,
30     MS_EWAITSTART,
31     MS_EWAITEND,
32     MS_EEND,
33
34 } MCU_STATUS;
35
36
37 /* Sceen description */
38 struct rk29fb_screen {
39     /* screen type & out face */
40     u16 type;
41     u16 face;
42
43         /* Screen size */
44         u16 x_res;
45         u16 y_res;
46     u16 width;
47     u16 height;
48
49     /* Timing */
50         u32 pixclock;
51         u16 left_margin;
52         u16 right_margin;
53         u16 hsync_len;
54         u16 upper_margin;
55         u16 lower_margin;
56         u16 vsync_len;
57
58     /* mcu need */
59         u8 mcu_wrperiod;
60     u8 mcu_usefmk;
61     u8 mcu_frmrate;
62
63         /* Pin polarity */
64         u8 pin_hsync;
65         u8 pin_vsync;
66         u8 pin_den;
67         u8 pin_dclk;
68     u32 lcdc_aclk;
69         u8 pin_dispon;
70
71         /* Swap rule */
72     u8 swap_rb;
73     u8 swap_rg;
74     u8 swap_gb;
75     u8 swap_delta;
76     u8 swap_dumy;
77
78     /* Operation function*/
79     int (*init)(void);
80     int (*standby)(u8 enable);
81     int (*refresh)(u8 arg);
82     int (*scandir)(u16 dir);
83     int (*disparea)(u8 area);
84
85 };
86
87 extern void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info);
88 extern void set_tv_info(struct rk29fb_screen *screen);
89 extern void set_hdmi_info(struct rk29fb_screen *screen);
90
91