1 /*
2  * Driver header for the SH-Mobile MIPI CSI-2 unit
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 
11 #ifndef SH_MIPI_CSI
12 #define SH_MIPI_CSI
13 
14 #include <linux/list.h>
15 
16 enum sh_csi2_phy {
17 	SH_CSI2_PHY_MAIN,
18 	SH_CSI2_PHY_SUB,
19 };
20 
21 enum sh_csi2_type {
22 	SH_CSI2C,
23 	SH_CSI2I,
24 };
25 
26 #define SH_CSI2_CRC	(1 << 0)
27 #define SH_CSI2_ECC	(1 << 1)
28 
29 struct platform_device;
30 
31 struct sh_csi2_client_config {
32 	enum sh_csi2_phy phy;
33 	unsigned char lanes;		/* bitmask[3:0] */
34 	unsigned char channel;		/* 0..3 */
35 	struct platform_device *pdev;	/* client platform device */
36 };
37 
38 struct v4l2_device;
39 
40 struct sh_csi2_pdata {
41 	enum sh_csi2_type type;
42 	unsigned int flags;
43 	struct sh_csi2_client_config *clients;
44 	int num_clients;
45 	struct v4l2_device *v4l2_dev;
46 };
47 
48 #endif
49