2010-05-23 22:00:43 +08:00
|
|
|
/*
|
|
|
|
* Public SH-mobile MIPI DSI header
|
|
|
|
*
|
|
|
|
* Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
|
|
* published by the Free Software Foundation.
|
|
|
|
*/
|
|
|
|
#ifndef VIDEO_SH_MIPI_DSI_H
|
|
|
|
#define VIDEO_SH_MIPI_DSI_H
|
|
|
|
|
|
|
|
enum sh_mipi_dsi_data_fmt {
|
|
|
|
MIPI_RGB888,
|
|
|
|
MIPI_RGB565,
|
|
|
|
MIPI_RGB666_LP,
|
|
|
|
MIPI_RGB666,
|
|
|
|
MIPI_BGR888,
|
|
|
|
MIPI_BGR565,
|
|
|
|
MIPI_BGR666_LP,
|
|
|
|
MIPI_BGR666,
|
|
|
|
MIPI_YUYV,
|
|
|
|
MIPI_UYVY,
|
|
|
|
MIPI_YUV420_L,
|
|
|
|
MIPI_YUV420,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct sh_mobile_lcdc_chan_cfg;
|
|
|
|
|
2010-12-29 16:12:22 +08:00
|
|
|
#define SH_MIPI_DSI_HSABM (1 << 0)
|
2011-11-09 12:34:01 +08:00
|
|
|
#define SH_MIPI_DSI_HBPBM (1 << 1)
|
2011-11-09 12:34:24 +08:00
|
|
|
#define SH_MIPI_DSI_HFPBM (1 << 2)
|
2011-11-09 12:34:33 +08:00
|
|
|
#define SH_MIPI_DSI_BL2E (1 << 3)
|
2011-11-09 12:34:55 +08:00
|
|
|
#define SH_MIPI_DSI_VSEE (1 << 4)
|
|
|
|
#define SH_MIPI_DSI_HSEE (1 << 5)
|
|
|
|
#define SH_MIPI_DSI_HSAE (1 << 6)
|
|
|
|
|
2011-11-09 12:35:27 +08:00
|
|
|
#define SH_MIPI_DSI_HSbyteCLK (1 << 24)
|
|
|
|
#define SH_MIPI_DSI_HS6divCLK (1 << 25)
|
|
|
|
#define SH_MIPI_DSI_HS4divCLK (1 << 26)
|
|
|
|
|
2011-11-09 12:34:55 +08:00
|
|
|
#define SH_MIPI_DSI_SYNC_PULSES_MODE (SH_MIPI_DSI_VSEE | \
|
|
|
|
SH_MIPI_DSI_HSEE | \
|
|
|
|
SH_MIPI_DSI_HSAE)
|
|
|
|
#define SH_MIPI_DSI_SYNC_EVENTS_MODE (0)
|
|
|
|
#define SH_MIPI_DSI_SYNC_BURST_MODE (SH_MIPI_DSI_BL2E)
|
2010-12-29 16:12:22 +08:00
|
|
|
|
2010-05-23 22:00:43 +08:00
|
|
|
struct sh_mipi_dsi_info {
|
|
|
|
enum sh_mipi_dsi_data_fmt data_format;
|
|
|
|
struct sh_mobile_lcdc_chan_cfg *lcd_chan;
|
2011-11-09 12:34:43 +08:00
|
|
|
int lane;
|
2010-12-29 16:12:22 +08:00
|
|
|
unsigned long flags;
|
|
|
|
u32 clksrc;
|
2012-03-21 09:34:10 +08:00
|
|
|
u32 phyctrl; /* for extra setting */
|
2010-12-29 16:12:22 +08:00
|
|
|
unsigned int vsynw_offset;
|
2011-11-09 12:35:14 +08:00
|
|
|
int (*set_dot_clock)(struct platform_device *pdev,
|
|
|
|
void __iomem *base,
|
|
|
|
int enable);
|
2010-05-23 22:00:43 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|