charset: Add support for calculating bytes occupied by a u16 string
[platform/kernel/u-boot.git] / include / dsi_host.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2019 STMicroelectronics - All Rights Reserved
4  * Author(s): Yannick Fertre <yannick.fertre@st.com> for STMicroelectronics.
5  *
6  */
7
8 #ifndef _DSI_HOST_H
9 #define _DSI_HOST_H
10
11 #include <mipi_dsi.h>
12
13 struct dsi_host_ops {
14         /**
15          * init() - initialized the dsi_host
16          *
17          * @dev: dsi host device
18          * @device: DSI peripheral device
19          * @timing: Display timings
20          * @max_data_lanes: maximum number of data lines
21          * @phy_ops: set of function pointers for performing physical operations
22          * @return 0 if OK, -ve on error
23          */
24         int (*init)(struct udevice *dev,
25                     struct mipi_dsi_device *device,
26                     struct display_timing *timings,
27                     unsigned int max_data_lanes,
28                     const struct mipi_dsi_phy_ops *phy_ops);
29
30         /**
31          * enable() - Enable the dsi_host
32          *
33          * @dev: dsi host device
34          * @return 0 if OK, -ve on error
35          */
36         int (*enable)(struct udevice *dev);
37
38         /**
39          * disable() - Disable the dsi_host
40          *
41          * @dev: dsi host device
42          * @return 0 if OK, -ve on error
43          */
44         int (*disable)(struct udevice *dev);
45 };
46
47 #define dsi_host_get_ops(dev)   ((struct dsi_host_ops *)(dev)->driver->ops)
48
49 /**
50  * dsi_host_init
51  *
52  * @dev: dsi host device
53  * @device: DSI peripheral device
54  * @timing: Display timings
55  * @max_data_lanes: maximum number of data lines
56  * @phy_ops: set of function pointers for performing physical operations
57  * @return 0 if OK, -ve on error
58  */
59 int dsi_host_init(struct udevice *dev,
60                   struct mipi_dsi_device *device,
61                   struct display_timing *timings,
62                   unsigned int max_data_lanes,
63                   const struct mipi_dsi_phy_ops *phy_ops);
64
65 /**
66  * dsi_host_enable
67  *
68  * @dev:        dsi host device
69  * @return 0 if OK, -ve on error
70  */
71 int dsi_host_enable(struct udevice *dev);
72
73 #endif