/* SPDX-License-Identifier: GPL-2.0+ */ /* * Copyright (C) 2019 STMicroelectronics - All Rights Reserved * Author(s): Yannick Fertre for STMicroelectronics. * */ #ifndef _DSI_HOST_H #define _DSI_HOST_H #include struct dsi_host_ops { /** * init() - initialized the dsi_host * * @dev: dsi host device * @device: DSI peripheral device * @timing: Display timings * @max_data_lanes: maximum number of data lines * @phy_ops: set of function pointers for performing physical operations * @return 0 if OK, -ve on error */ int (*init)(struct udevice *dev, struct mipi_dsi_device *device, struct display_timing *timings, unsigned int max_data_lanes, const struct mipi_dsi_phy_ops *phy_ops); /** * enable() - Enable the dsi_host * * @dev: dsi host device * @return 0 if OK, -ve on error */ int (*enable)(struct udevice *dev); /** * disable() - Disable the dsi_host * * @dev: dsi host device * @return 0 if OK, -ve on error */ int (*disable)(struct udevice *dev); }; #define dsi_host_get_ops(dev) ((struct dsi_host_ops *)(dev)->driver->ops) /** * dsi_host_init * * @dev: dsi host device * @device: DSI peripheral device * @timing: Display timings * @max_data_lanes: maximum number of data lines * @phy_ops: set of function pointers for performing physical operations * @return 0 if OK, -ve on error */ int dsi_host_init(struct udevice *dev, struct mipi_dsi_device *device, struct display_timing *timings, unsigned int max_data_lanes, const struct mipi_dsi_phy_ops *phy_ops); /** * dsi_host_enable * * @dev: dsi host device * @return 0 if OK, -ve on error */ int dsi_host_enable(struct udevice *dev); #endif