xref: /openbmc/u-boot/include/panel.h (revision cf033e04)
183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2f563dc1dSSimon Glass /*
3f563dc1dSSimon Glass  * Copyright (c) 2016 Google, Inc
4f563dc1dSSimon Glass  * Written by Simon Glass <sjg@chromium.org>
5f563dc1dSSimon Glass  */
6f563dc1dSSimon Glass 
7f563dc1dSSimon Glass #ifndef _PANEL_H
8f563dc1dSSimon Glass #define _PANEL_H
9f563dc1dSSimon Glass 
10f563dc1dSSimon Glass struct panel_ops {
11f563dc1dSSimon Glass 	/**
12f563dc1dSSimon Glass 	 * enable_backlight() - Enable the panel backlight
13f563dc1dSSimon Glass 	 *
14f563dc1dSSimon Glass 	 * @dev:	Panel device containing the backlight to enable
15f563dc1dSSimon Glass 	 * @return 0 if OK, -ve on error
16f563dc1dSSimon Glass 	 */
17f563dc1dSSimon Glass 	int (*enable_backlight)(struct udevice *dev);
18*a4f737a9SSimon Glass 
19*a4f737a9SSimon Glass 	/**
20*a4f737a9SSimon Glass 	 * set_backlight - Set panel backlight brightness
21*a4f737a9SSimon Glass 	 *
22*a4f737a9SSimon Glass 	 * @dev:	Panel device containing the backlight to update
23*a4f737a9SSimon Glass 	 * @percent:	Brightness value (0 to 100, or BACKLIGHT_... value)
24*a4f737a9SSimon Glass 	 * @return 0 if OK, -ve on error
25*a4f737a9SSimon Glass 	 */
26*a4f737a9SSimon Glass 	int (*set_backlight)(struct udevice *dev, int percent);
27*a4f737a9SSimon Glass 
2828576f81SYannick Fertré 	/**
2928576f81SYannick Fertré 	 * get_timings() - Get display timings from panel.
3028576f81SYannick Fertré 	 *
3128576f81SYannick Fertré 	 * @dev:	Panel device containing the display timings
3228576f81SYannick Fertré 	 * @tim:	Place to put timings
3328576f81SYannick Fertré 	 * @return 0 if OK, -ve on error
3428576f81SYannick Fertré 	 */
3528576f81SYannick Fertré 	int (*get_display_timing)(struct udevice *dev,
3628576f81SYannick Fertré 				  struct display_timing *timing);
37f563dc1dSSimon Glass };
38f563dc1dSSimon Glass 
39f563dc1dSSimon Glass #define panel_get_ops(dev)	((struct panel_ops *)(dev)->driver->ops)
40f563dc1dSSimon Glass 
41f563dc1dSSimon Glass /**
42*a4f737a9SSimon Glass  * panel_enable_backlight() - Enable/disable the panel backlight
43f563dc1dSSimon Glass  *
44f563dc1dSSimon Glass  * @dev:	Panel device containing the backlight to enable
45*a4f737a9SSimon Glass  * @enable:	true to enable the backlight, false to dis
46f563dc1dSSimon Glass  * @return 0 if OK, -ve on error
47f563dc1dSSimon Glass  */
48f563dc1dSSimon Glass int panel_enable_backlight(struct udevice *dev);
49f563dc1dSSimon Glass 
5028576f81SYannick Fertré /**
51*a4f737a9SSimon Glass  * panel_set_backlight - Set brightness for the panel backlight
52*a4f737a9SSimon Glass  *
53*a4f737a9SSimon Glass  * @dev:	Panel device containing the backlight to update
54*a4f737a9SSimon Glass  * @percent:	Brightness value (0 to 100, or BACKLIGHT_... value)
55*a4f737a9SSimon Glass  * @return 0 if OK, -ve on error
56*a4f737a9SSimon Glass  */
57*a4f737a9SSimon Glass int panel_set_backlight(struct udevice *dev, int percent);
58*a4f737a9SSimon Glass 
59*a4f737a9SSimon Glass /**
6028576f81SYannick Fertré  * panel_get_display_timing() - Get display timings from panel.
6128576f81SYannick Fertré  *
6228576f81SYannick Fertré  * @dev:	Panel device containing the display timings
6328576f81SYannick Fertré  * @return 0 if OK, -ve on error
6428576f81SYannick Fertré  */
6528576f81SYannick Fertré int panel_get_display_timing(struct udevice *dev,
6628576f81SYannick Fertré 			     struct display_timing *timing);
6728576f81SYannick Fertré 
68f563dc1dSSimon Glass #endif
69