blob: c586c4f7f16bb261378f3850034f6f8186fa4510 [file] [log] [blame]
Guennadi Liakhovetski077e2c12010-07-26 11:12:43 -03001/*
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
Guennadi Liakhovetski6b526fe2011-07-01 11:19:58 -030014#include <linux/list.h>
15
Guennadi Liakhovetski077e2c12010-07-26 11:12:43 -030016enum 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};
37
Guennadi Liakhovetski6b526fe2011-07-01 11:19:58 -030038struct v4l2_device;
39
Guennadi Liakhovetski077e2c12010-07-26 11:12:43 -030040struct sh_csi2_pdata {
41 enum sh_csi2_type type;
42 unsigned int flags;
43 struct sh_csi2_client_config *clients;
44 int num_clients;
Guennadi Liakhovetski6b526fe2011-07-01 11:19:58 -030045 struct v4l2_device *v4l2_dev;
Guennadi Liakhovetski077e2c12010-07-26 11:12:43 -030046};
47
Guennadi Liakhovetski077e2c12010-07-26 11:12:43 -030048#endif