xref: /openbmc/u-boot/drivers/video/panel-uclass.c (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 #include <common.h>
8f563dc1dSSimon Glass #include <dm.h>
9f563dc1dSSimon Glass #include <panel.h>
10f563dc1dSSimon Glass 
panel_enable_backlight(struct udevice * dev)11f563dc1dSSimon Glass int panel_enable_backlight(struct udevice *dev)
12f563dc1dSSimon Glass {
13f563dc1dSSimon Glass 	struct panel_ops *ops = panel_get_ops(dev);
14f563dc1dSSimon Glass 
15f563dc1dSSimon Glass 	if (!ops->enable_backlight)
16f563dc1dSSimon Glass 		return -ENOSYS;
17f563dc1dSSimon Glass 
18f563dc1dSSimon Glass 	return ops->enable_backlight(dev);
19f563dc1dSSimon Glass }
20f563dc1dSSimon Glass 
21*a4f737a9SSimon Glass /**
22*a4f737a9SSimon Glass  * panel_set_backlight - Set brightness for the panel backlight
23*a4f737a9SSimon Glass  *
24*a4f737a9SSimon Glass  * @dev:	Panel device containing the backlight to update
25*a4f737a9SSimon Glass  * @percent:	Brightness value (0=off, 1=min brightness,
26*a4f737a9SSimon Glass  *		100=full brightness)
27*a4f737a9SSimon Glass  * @return 0 if OK, -ve on error
28*a4f737a9SSimon Glass  */
panel_set_backlight(struct udevice * dev,int percent)29*a4f737a9SSimon Glass int panel_set_backlight(struct udevice *dev, int percent)
30*a4f737a9SSimon Glass {
31*a4f737a9SSimon Glass 	struct panel_ops *ops = panel_get_ops(dev);
32*a4f737a9SSimon Glass 
33*a4f737a9SSimon Glass 	if (!ops->set_backlight)
34*a4f737a9SSimon Glass 		return -ENOSYS;
35*a4f737a9SSimon Glass 
36*a4f737a9SSimon Glass 	return ops->set_backlight(dev, percent);
37*a4f737a9SSimon Glass }
38*a4f737a9SSimon Glass 
panel_get_display_timing(struct udevice * dev,struct display_timing * timings)3928576f81SYannick Fertré int panel_get_display_timing(struct udevice *dev,
4028576f81SYannick Fertré 			     struct display_timing *timings)
4128576f81SYannick Fertré {
4228576f81SYannick Fertré 	struct panel_ops *ops = panel_get_ops(dev);
4328576f81SYannick Fertré 
4428576f81SYannick Fertré 	if (!ops->get_display_timing)
4528576f81SYannick Fertré 		return -ENOSYS;
4628576f81SYannick Fertré 
4728576f81SYannick Fertré 	return ops->get_display_timing(dev, timings);
4828576f81SYannick Fertré }
4928576f81SYannick Fertré 
50f563dc1dSSimon Glass UCLASS_DRIVER(panel) = {
51f563dc1dSSimon Glass 	.id		= UCLASS_PANEL,
52f563dc1dSSimon Glass 	.name		= "panel",
53f563dc1dSSimon Glass };
54