xref: /openbmc/u-boot/drivers/video/panel-uclass.c (revision 8d773c4a)
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 #include <common.h>
8 #include <dm.h>
9 #include <panel.h>
10 
11 int panel_enable_backlight(struct udevice *dev)
12 {
13 	struct panel_ops *ops = panel_get_ops(dev);
14 
15 	if (!ops->enable_backlight)
16 		return -ENOSYS;
17 
18 	return ops->enable_backlight(dev);
19 }
20 
21 /**
22  * panel_set_backlight - Set brightness for the panel backlight
23  *
24  * @dev:	Panel device containing the backlight to update
25  * @percent:	Brightness value (0=off, 1=min brightness,
26  *		100=full brightness)
27  * @return 0 if OK, -ve on error
28  */
29 int panel_set_backlight(struct udevice *dev, int percent)
30 {
31 	struct panel_ops *ops = panel_get_ops(dev);
32 
33 	if (!ops->set_backlight)
34 		return -ENOSYS;
35 
36 	return ops->set_backlight(dev, percent);
37 }
38 
39 int panel_get_display_timing(struct udevice *dev,
40 			     struct display_timing *timings)
41 {
42 	struct panel_ops *ops = panel_get_ops(dev);
43 
44 	if (!ops->get_display_timing)
45 		return -ENOSYS;
46 
47 	return ops->get_display_timing(dev, timings);
48 }
49 
50 UCLASS_DRIVER(panel) = {
51 	.id		= UCLASS_PANEL,
52 	.name		= "panel",
53 };
54