Merge tag 'dm-9oct18' of git://git.denx.de/u-boot-dm
[platform/kernel/u-boot.git] / drivers / video / panel-uclass.c
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 };