2 * Copyright (C) 2012 Spreadtrum Communications Inc.
12 #define FB_PRINT printk
17 #define mdelay(t) ({unsigned long msec=(t); while (msec--) { udelay(1000);}})
20 SPRDFB_PANEL_IF_DBI = 0,
28 MCU_LCD_REGISTER_TIMING = 0,
30 MCU_LCD_TIMING_KIND_MAX
36 RGB_LCD_TIMING_KIND_MAX
46 int32_t (*panel_if_check)(struct panel_spec *self);
47 void (*panel_if_mount)(struct sprdfb_device *dev);
48 void (*panel_if_init)(struct sprdfb_device *dev);
49 void (*panel_if_ready)(struct sprdfb_device *dev);
50 void (*panel_if_uninit)(struct sprdfb_device *dev);
51 void (*panel_if_before_refresh)(struct sprdfb_device *dev);
52 void (*panel_if_after_refresh)(struct sprdfb_device *dev);
53 void (*panel_if_before_panel_reset)(struct sprdfb_device *dev);
54 void (*panel_if_suspend)(struct sprdfb_device *dev);
55 void (*panel_if_resume)(struct sprdfb_device *dev);
59 struct sprdfb_device {
63 uint32_t mcu_timing[MCU_LCD_TIMING_KIND_MAX];
64 uint32_t rgb_timing[RGB_LCD_TIMING_KIND_MAX];
67 uint16_t panel_if_type; /*panel IF*/
69 #ifdef CONFIG_FB_LOW_RES_SIMU
70 uint16_t display_width;
71 uint16_t display_height;
74 struct panel_spec *panel;
75 struct panel_if_ctrl *if_ctrl;
76 struct display_ctrl *ctrl;
83 int32_t (*early_init) (struct sprdfb_device *dev);
84 int32_t (*init) (struct sprdfb_device *dev);
85 int32_t (*uninit) (struct sprdfb_device *dev);
87 int32_t (*refresh) (struct sprdfb_device *dev);
88 void (*update_clk) (struct sprdfb_device *dev);
91 #if defined(CONFIG_FPGA)
92 int sprdchip_lvds_init(void);
95 #define sprdchip_lvds_init NULL