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 58