Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0 */
2
3#ifndef __TEGRA_MIPI_CAL_H_
4#define __TEGRA_MIPI_CAL_H_
5
6struct tegra_mipi_device {
7 const struct tegra_mipi_ops *ops;
8 struct platform_device *pdev;
9 unsigned long pads;
10};
11
12/**
13 * Operations for Tegra MIPI calibration device
14 */
15struct tegra_mipi_ops {
16 /**
17 * @enable:
18 *
19 * Enable MIPI calibration device
20 */
21 int (*enable)(struct tegra_mipi_device *device);
22
23 /**
24 * @disable:
25 *
26 * Disable MIPI calibration device
27 */
28 int (*disable)(struct tegra_mipi_device *device);
29
30 /**
31 * @start_calibration:
32 *
33 * Start MIPI calibration
34 */
35 int (*start_calibration)(struct tegra_mipi_device *device);
36
37 /**
38 * @finish_calibration:
39 *
40 * Finish MIPI calibration
41 */
42 int (*finish_calibration)(struct tegra_mipi_device *device);
43};
44
45int devm_tegra_mipi_add_provider(struct device *device, struct device_node *np,
46 const struct tegra_mipi_ops *ops);
47
48struct tegra_mipi_device *tegra_mipi_request(struct device *device,
49 struct device_node *np);
50void tegra_mipi_free(struct tegra_mipi_device *device);
51
52int tegra_mipi_enable(struct tegra_mipi_device *device);
53int tegra_mipi_disable(struct tegra_mipi_device *device);
54int tegra_mipi_start_calibration(struct tegra_mipi_device *device);
55int tegra_mipi_finish_calibration(struct tegra_mipi_device *device);
56
57#endif /* __TEGRA_MIPI_CAL_H_ */