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