blob: 1f7e20e0b50648b7062480039067074bd9f0125e [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Simon Glass14d1c8e2016-01-21 19:44:58 -07002/*
3 * Copyright (c) 2016 Google, Inc
4 * Written by Simon Glass <sjg@chromium.org>
Simon Glass14d1c8e2016-01-21 19:44:58 -07005 */
6
Patrick Delaunay81313352021-04-27 11:02:19 +02007#define LOG_CATEGORY UCLASS_PANEL
8
Simon Glass14d1c8e2016-01-21 19:44:58 -07009#include <common.h>
10#include <dm.h>
11#include <panel.h>
12
13int panel_enable_backlight(struct udevice *dev)
14{
15 struct panel_ops *ops = panel_get_ops(dev);
16
17 if (!ops->enable_backlight)
18 return -ENOSYS;
19
20 return ops->enable_backlight(dev);
21}
22
Simon Glassfe68a452018-10-01 12:22:41 -060023/**
24 * panel_set_backlight - Set brightness for the panel backlight
25 *
26 * @dev: Panel device containing the backlight to update
27 * @percent: Brightness value (0=off, 1=min brightness,
28 * 100=full brightness)
Heinrich Schuchardt47b4c022022-01-19 18:05:50 +010029 * Return: 0 if OK, -ve on error
Simon Glassfe68a452018-10-01 12:22:41 -060030 */
31int panel_set_backlight(struct udevice *dev, int percent)
32{
33 struct panel_ops *ops = panel_get_ops(dev);
34
35 if (!ops->set_backlight)
36 return -ENOSYS;
37
38 return ops->set_backlight(dev, percent);
39}
40
Yannick Fertrécfcb4322018-07-13 14:11:09 +020041int panel_get_display_timing(struct udevice *dev,
42 struct display_timing *timings)
43{
44 struct panel_ops *ops = panel_get_ops(dev);
45
46 if (!ops->get_display_timing)
47 return -ENOSYS;
48
49 return ops->get_display_timing(dev, timings);
50}
51
Simon Glass14d1c8e2016-01-21 19:44:58 -070052UCLASS_DRIVER(panel) = {
53 .id = UCLASS_PANEL,
54 .name = "panel",
55};