bootstage: Add SPL support
[platform/kernel/u-boot.git] / include / backlight.h
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 _BACKLIGHT_H
8 #define _BACKLIGHT_H
9
10 struct udevice;
11
12 enum {
13         BACKLIGHT_MAX           = 100,
14         BACKLIGHT_MIN           = 0,
15         BACKLIGHT_OFF           = -1,
16         BACKLIGHT_DEFAULT       = -2,
17 };
18
19 struct backlight_ops {
20         /**
21          * enable() - Enable a backlight
22          *
23          * @dev:        Backlight device to enable
24          * @return 0 if OK, -ve on error
25          */
26         int (*enable)(struct udevice *dev);
27
28         /**
29          * set_brightness - Set brightness
30          *
31          * @dev:        Backlight device to update
32          * @percent:    Brightness value (0 to 100, or BACKLIGHT_... value)
33          * @return 0 if OK, -ve on error
34          */
35         int (*set_brightness)(struct udevice *dev, int percent);
36 };
37
38 #define backlight_get_ops(dev)  ((struct backlight_ops *)(dev)->driver->ops)
39
40 /**
41  * backlight_enable() - Enable a backlight
42  *
43  * @dev:        Backlight device to enable
44  * @return 0 if OK, -ve on error
45  */
46 int backlight_enable(struct udevice *dev);
47
48 /**
49  * backlight_set_brightness - Set brightness
50  *
51  * @dev:        Backlight device to update
52  * @percent:    Brightness value (0 to 100, or BACKLIGHT_... value)
53  * @return 0 if OK, -ve on error
54  */
55 int backlight_set_brightness(struct udevice *dev, int percent);
56
57 #endif