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
45 int32_t (*panel_if_check)(struct panel_spec *self);
46 void (*panel_if_mount)(struct sprdfb_device *dev);
47 void (*panel_if_init)(struct sprdfb_device *dev);
48 void (*panel_if_ready)(struct sprdfb_device *dev);
49 void (*panel_if_uninit)(struct sprdfb_device *dev);
50 void (*panel_if_before_refresh)(struct sprdfb_device *dev);
51 void (*panel_if_after_refresh)(struct sprdfb_device *dev);
52 void (*panel_if_before_panel_reset)(struct sprdfb_device *dev);
53 void (*panel_if_suspend)(struct sprdfb_device *dev);
54 void (*panel_if_resume)(struct sprdfb_device *dev);
58 struct sprdfb_device {
62 uint32_t mcu_timing[MCU_LCD_TIMING_KIND_MAX];
63 uint32_t rgb_timing[RGB_LCD_TIMING_KIND_MAX];
66 uint16_t panel_if_type; /*panel IF*/
68 #ifdef CONFIG_FB_LOW_RES_SIMU
69 uint16_t display_width;
70 uint16_t display_height;
73 struct panel_spec *panel;
74 struct panel_if_ctrl *if_ctrl;
75 struct display_ctrl *ctrl;
82 int32_t (*early_init) (struct sprdfb_device *dev);
83 int32_t (*init) (struct sprdfb_device *dev);
84 int32_t (*uninit) (struct sprdfb_device *dev);
86 int32_t (*refresh) (struct sprdfb_device *dev);
87 void (*update_clk) (struct sprdfb_device *dev);
90 #if defined(CONFIG_FPGA)
91 int sprdchip_lvds_init(void);
94 #define sprdchip_lvds_init NULL