1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * TI OMAP4 ISS V4L2 Driver - CSI PHY module
4 *
5 * Copyright (C) 2012 Texas Instruments, Inc.
6 *
7 * Author: Sergio Aguirre <sergio.a.aguirre@gmail.com>
8 */
9
10#ifndef OMAP4_ISS_CSI_PHY_H
11#define OMAP4_ISS_CSI_PHY_H
12
13#include <linux/platform_data/media/omap4iss.h>
14
15struct iss_csi2_device;
16
17struct iss_csiphy_dphy_cfg {
18 u8 ths_term;
19 u8 ths_settle;
20 u8 tclk_term;
21 unsigned tclk_miss:1;
22 u8 tclk_settle;
23};
24
25struct iss_csiphy {
26 struct iss_device *iss;
27 struct mutex mutex; /* serialize csiphy configuration */
28 u8 phy_in_use;
29 struct iss_csi2_device *csi2;
30
31 /* memory resources, as defined in enum iss_mem_resources */
32 unsigned int cfg_regs;
33 unsigned int phy_regs;
34
35 u8 max_data_lanes; /* number of CSI2 Data Lanes supported */
36 u8 used_data_lanes; /* number of CSI2 Data Lanes used */
37 struct iss_csiphy_lanes_cfg lanes;
38 struct iss_csiphy_dphy_cfg dphy;
39};
40
41int omap4iss_csiphy_config(struct iss_device *iss,
42 struct v4l2_subdev *csi2_subdev);
43int omap4iss_csiphy_acquire(struct iss_csiphy *phy);
44void omap4iss_csiphy_release(struct iss_csiphy *phy);
45int omap4iss_csiphy_init(struct iss_device *iss);
46
47#endif /* OMAP4_ISS_CSI_PHY_H */
48

source code of linux/drivers/staging/media/omap4iss/iss_csiphy.h