1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright (c) 2016 Google, Inc
4 * Written by Simon Glass <sjg@chromium.org>
5 */
6
7#ifndef _PANEL_H
8#define _PANEL_H
9
10struct panel_ops {
11	/**
12	 * enable_backlight() - Enable the panel backlight
13	 *
14	 * @dev:	Panel device containing the backlight to enable
15	 * @return 0 if OK, -ve on error
16	 */
17	int (*enable_backlight)(struct udevice *dev);
18
19	/**
20	 * set_backlight - Set panel backlight brightness
21	 *
22	 * @dev:	Panel device containing the backlight to update
23	 * @percent:	Brightness value (0 to 100, or BACKLIGHT_... value)
24	 * @return 0 if OK, -ve on error
25	 */
26	int (*set_backlight)(struct udevice *dev, int percent);
27
28	/**
29	 * get_timings() - Get display timings from panel.
30	 *
31	 * @dev:	Panel device containing the display timings
32	 * @tim:	Place to put timings
33	 * @return 0 if OK, -ve on error
34	 */
35	int (*get_display_timing)(struct udevice *dev,
36				  struct display_timing *timing);
37};
38
39#define panel_get_ops(dev)	((struct panel_ops *)(dev)->driver->ops)
40
41/**
42 * panel_enable_backlight() - Enable/disable the panel backlight
43 *
44 * @dev:	Panel device containing the backlight to enable
45 * @enable:	true to enable the backlight, false to dis
46 * Return: 0 if OK, -ve on error
47 */
48int panel_enable_backlight(struct udevice *dev);
49
50/**
51 * panel_set_backlight - Set brightness for the panel backlight
52 *
53 * @dev:	Panel device containing the backlight to update
54 * @percent:	Brightness value (0 to 100, or BACKLIGHT_... value)
55 * Return: 0 if OK, -ve on error
56 */
57int panel_set_backlight(struct udevice *dev, int percent);
58
59/**
60 * panel_get_display_timing() - Get display timings from panel.
61 *
62 * @dev:	Panel device containing the display timings
63 * Return: 0 if OK, -ve on error
64 */
65int panel_get_display_timing(struct udevice *dev,
66			     struct display_timing *timing);
67
68#endif
69