4 #ifdef CONFIG_HDMI_DUAL_DISP
5 /* Scaler PLL CONFIG */
10 #define S_PLL_M(x) (((x)&0xff)<<8)
11 #define S_PLL_N(x) (((x)&0xf)<<4)
12 #define S_PLL_NO(x) ((S_PLL_NO_##x)&0x3)
19 /* Scaler clk setting */
20 #define SCALE_PLL(_parent_rate,_rate,_m,_n,_no) \
21 HDMI_RATE_ ## _parent_rate ##_S_RATE_ ## _rate \
22 = S_PLL_M(_m) | S_PLL_N(_n) | S_PLL_NO(_no)
23 #define SCALE_RATE(_parent_rate , _rate) \
24 (HDMI_RATE_ ## _parent_rate ## _S_RATE_ ## _rate)
27 SCALE_PLL(148500000, 66000000, 16, 9, 4),
28 SCALE_PLL(148500000, 57375000, 17, 11, 4),
29 SCALE_PLL(148500000, 54000000, 16, 11, 4),
30 SCALE_PLL(148500000, 33000000, 16, 9, 8),
31 SCALE_PLL(148500000, 30375000, 18, 11, 8),
32 SCALE_PLL(148500000, 29700000, 16, 10, 8),
33 SCALE_PLL(148500000, 25312500, 15, 11, 8),
35 SCALE_PLL(74250000, 66000000, 32, 9, 4),
36 SCALE_PLL(74250000, 57375000, 34, 11, 4),
37 SCALE_PLL(74250000, 54000000, 32, 11, 4),
38 SCALE_PLL(74250000, 33000000, 32, 9, 8),
39 SCALE_PLL(74250000, 30375000, 36, 11, 8),
40 SCALE_PLL(74250000, 25312500, 30, 11, 8),
42 SCALE_PLL(27000000, 75000000, 100, 9, 4),
43 SCALE_PLL(27000000, 72000000, 32, 3, 4),
44 SCALE_PLL(27000000, 63281250, 75, 4, 8),
45 SCALE_PLL(27000000, 54375000, 145, 9, 8),
46 SCALE_PLL(27000000, 31500000, 28, 3, 8),
47 SCALE_PLL(27000000, 30000000, 80, 9, 8),
50 typedef enum _SCREEN_TYPE {
59 typedef enum _REFRESH_STAGE {
66 typedef enum _MCU_IOCTL {
74 typedef enum _MCU_STATUS {
84 enum rk_disp_prop{ //display device property
85 PRMRY = 0, //primary display device ,like LCD screen
86 EXTEND, //extend display device ,like hdmi ,tv out
96 int (*io_deinit)(void);
100 /* Screen description */
101 typedef struct rk29fb_screen {
102 /* screen type & hardware connect format & out face */
122 u8 ft; //the time need to display one frame,in ms
123 #ifdef CONFIG_HDMI_DUAL_DISP
124 /* Scaler mode Timing */
159 /* Operation function*/
161 int (*standby)(u8 enable);
162 int (*refresh)(u8 arg);
163 int (*scandir)(u16 dir);
164 int (*disparea)(u8 area);
165 int (*sscreen_get)(struct rk29fb_screen *screen, u8 resolution);
166 int (*sscreen_set)(struct rk29fb_screen *screen, bool type);// 1: use scaler 0:bypass
169 extern void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info);
170 extern void set_tv_info(struct rk29fb_screen *screen);
171 extern void set_hdmi_info(struct rk29fb_screen *screen);