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
16enum sh_csi2_phy {
17	SH_CSI2_PHY_MAIN,
18	SH_CSI2_PHY_SUB,
19};
20
21enum 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
29struct platform_device;
30
31struct 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	const char *name;		/* async matching: client name */
37};
38
39struct v4l2_device;
40
41struct sh_csi2_pdata {
42	enum sh_csi2_type type;
43	unsigned int flags;
44	struct sh_csi2_client_config *clients;
45	int num_clients;
46};
47
48#endif
49