1/*
2 * Public SH-mobile MIPI DSI header
3 *
4 * Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#ifndef VIDEO_SH_MIPI_DSI_H
11#define VIDEO_SH_MIPI_DSI_H
12
13enum sh_mipi_dsi_data_fmt {
14	MIPI_RGB888,
15	MIPI_RGB565,
16	MIPI_RGB666_LP,
17	MIPI_RGB666,
18	MIPI_BGR888,
19	MIPI_BGR565,
20	MIPI_BGR666_LP,
21	MIPI_BGR666,
22	MIPI_YUYV,
23	MIPI_UYVY,
24	MIPI_YUV420_L,
25	MIPI_YUV420,
26};
27
28#define SH_MIPI_DSI_HSABM	(1 << 0)
29#define SH_MIPI_DSI_HBPBM	(1 << 1)
30#define SH_MIPI_DSI_HFPBM	(1 << 2)
31#define SH_MIPI_DSI_BL2E	(1 << 3)
32#define SH_MIPI_DSI_VSEE	(1 << 4)
33#define SH_MIPI_DSI_HSEE	(1 << 5)
34#define SH_MIPI_DSI_HSAE	(1 << 6)
35
36#define SH_MIPI_DSI_HSbyteCLK	(1 << 24)
37#define SH_MIPI_DSI_HS6divCLK	(1 << 25)
38#define SH_MIPI_DSI_HS4divCLK	(1 << 26)
39
40#define SH_MIPI_DSI_SYNC_PULSES_MODE	(SH_MIPI_DSI_VSEE | \
41					 SH_MIPI_DSI_HSEE | \
42					 SH_MIPI_DSI_HSAE)
43#define SH_MIPI_DSI_SYNC_EVENTS_MODE	(0)
44#define SH_MIPI_DSI_SYNC_BURST_MODE	(SH_MIPI_DSI_BL2E)
45
46struct sh_mipi_dsi_info {
47	enum sh_mipi_dsi_data_fmt	data_format;
48	int				channel;
49	int				lane;
50	unsigned long			flags;
51	u32				clksrc;
52	u32				phyctrl; /* for extra setting */
53	unsigned int			vsynw_offset;
54	int	(*set_dot_clock)(struct platform_device *pdev,
55				 void __iomem *base,
56				 int enable);
57};
58
59#endif
60