| /* SPDX-License-Identifier: GPL-2.0 */ | |
| #ifndef __TEGRA_MIPI_CAL_H_ | |
| #define __TEGRA_MIPI_CAL_H_ | |
| struct tegra_mipi_device { | |
| const struct tegra_mipi_ops *ops; | |
| struct platform_device *pdev; | |
| unsigned long pads; | |
| }; | |
| /** | |
| * Operations for Tegra MIPI calibration device | |
| */ | |
| struct tegra_mipi_ops { | |
| /** | |
| * @enable: | |
| * | |
| * Enable MIPI calibration device | |
| */ | |
| int (*enable)(struct tegra_mipi_device *device); | |
| /** | |
| * @disable: | |
| * | |
| * Disable MIPI calibration device | |
| */ | |
| int (*disable)(struct tegra_mipi_device *device); | |
| /** | |
| * @start_calibration: | |
| * | |
| * Start MIPI calibration | |
| */ | |
| int (*start_calibration)(struct tegra_mipi_device *device); | |
| /** | |
| * @finish_calibration: | |
| * | |
| * Finish MIPI calibration | |
| */ | |
| int (*finish_calibration)(struct tegra_mipi_device *device); | |
| }; | |
| int devm_tegra_mipi_add_provider(struct device *device, struct device_node *np, | |
| const struct tegra_mipi_ops *ops); | |
| struct tegra_mipi_device *tegra_mipi_request(struct device *device, | |
| struct device_node *np); | |
| void tegra_mipi_free(struct tegra_mipi_device *device); | |
| int tegra_mipi_enable(struct tegra_mipi_device *device); | |
| int tegra_mipi_disable(struct tegra_mipi_device *device); | |
| int tegra_mipi_start_calibration(struct tegra_mipi_device *device); | |
| int tegra_mipi_finish_calibration(struct tegra_mipi_device *device); | |
| #endif /* __TEGRA_MIPI_CAL_H_ */ |