diff options
Diffstat (limited to 'drivers/video/atmel_lcdfb.h')
-rw-r--r-- | drivers/video/atmel_lcdfb.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/video/atmel_lcdfb.h b/drivers/video/atmel_lcdfb.h new file mode 100644 index 0000000000..ea4c7e647a --- /dev/null +++ b/drivers/video/atmel_lcdfb.h @@ -0,0 +1,37 @@ + +#include <fb.h> +#include <video/atmel_lcdc.h> + +struct atmel_lcdfb_info; + +struct atmel_lcdfb_devdata { + void (*start)(struct atmel_lcdfb_info *sinfo); + void (*stop)(struct atmel_lcdfb_info *sinfo, u32 flags); + void (*update_dma)(struct fb_info *info); + void (*setup_core)(struct fb_info *info); + void (*init_contrast)(struct atmel_lcdfb_info *sinfo); + void (*limit_screeninfo)(struct fb_videomode *mode); + int dma_desc_size; +}; + +struct atmel_lcdfb_info { + struct fb_info info; + void __iomem *mmio; + struct device_d *device; + + unsigned int guard_time; + unsigned int smem_len; + struct clk *bus_clk; + struct clk *lcdc_clk; + + struct atmel_lcdfb_platform_data *pdata; + struct atmel_lcdfb_devdata *dev_data; + void *dma_desc; +}; + +#define lcdc_readl(sinfo, reg) __raw_readl((sinfo)->mmio+(reg)) +#define lcdc_writel(sinfo, reg, val) __raw_writel((val), (sinfo)->mmio+(reg)) + +#define ATMEL_LCDC_STOP_NOWAIT (1 << 0) + +int atmel_lcdc_register(struct device_d *dev, struct atmel_lcdfb_devdata *data); |