blob: 06c67fbc4eee471f8871fd3892f87be5712c2e00 [file] [log] [blame]
Guennadi Liakhovetski9fd04fe2010-05-23 14:00:43 +00001/*
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
28struct sh_mobile_lcdc_chan_cfg;
29
Guennadi Liakhovetski38f3a872010-12-29 08:12:22 +000030#define SH_MIPI_DSI_HSABM (1 << 0)
Kuninori Morimoto32ba95c2011-11-08 20:34:01 -080031#define SH_MIPI_DSI_HBPBM (1 << 1)
Kuninori Morimotof7b0af62011-11-08 20:34:24 -080032#define SH_MIPI_DSI_HFPBM (1 << 2)
Kuninori Morimotod07a9d22011-11-08 20:34:33 -080033#define SH_MIPI_DSI_BL2E (1 << 3)
Kuninori Morimotof832906a2011-11-08 20:34:55 -080034#define SH_MIPI_DSI_VSEE (1 << 4)
35#define SH_MIPI_DSI_HSEE (1 << 5)
36#define SH_MIPI_DSI_HSAE (1 << 6)
37
Kuninori Morimotoa2e62972011-11-08 20:35:27 -080038#define SH_MIPI_DSI_HSbyteCLK (1 << 24)
39#define SH_MIPI_DSI_HS6divCLK (1 << 25)
40#define SH_MIPI_DSI_HS4divCLK (1 << 26)
41
Kuninori Morimotof832906a2011-11-08 20:34:55 -080042#define SH_MIPI_DSI_SYNC_PULSES_MODE (SH_MIPI_DSI_VSEE | \
43 SH_MIPI_DSI_HSEE | \
44 SH_MIPI_DSI_HSAE)
45#define SH_MIPI_DSI_SYNC_EVENTS_MODE (0)
46#define SH_MIPI_DSI_SYNC_BURST_MODE (SH_MIPI_DSI_BL2E)
Guennadi Liakhovetski38f3a872010-12-29 08:12:22 +000047
Guennadi Liakhovetski9fd04fe2010-05-23 14:00:43 +000048struct sh_mipi_dsi_info {
49 enum sh_mipi_dsi_data_fmt data_format;
50 struct sh_mobile_lcdc_chan_cfg *lcd_chan;
Kuninori Morimoto26c3d7a2011-11-08 20:34:43 -080051 int lane;
Guennadi Liakhovetski38f3a872010-12-29 08:12:22 +000052 unsigned long flags;
53 u32 clksrc;
Kuninori Morimoto8f9c60f2012-03-20 18:34:10 -070054 u32 phyctrl; /* for extra setting */
Guennadi Liakhovetski38f3a872010-12-29 08:12:22 +000055 unsigned int vsynw_offset;
Kuninori Morimoto5e474312011-11-08 20:35:14 -080056 int (*set_dot_clock)(struct platform_device *pdev,
57 void __iomem *base,
58 int enable);
Guennadi Liakhovetski9fd04fe2010-05-23 14:00:43 +000059};
60
61#endif