mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 03:03:05 +00:00
a4f737a9c3
At present the panel can be turned on but not off, and the brightness cannot be controlled at run-time. Add a new API function to both the panel and backlight uclasses to handle this. Enhance the PWM backlight driver to deal with custom levels properly and allow the backlight to be turned on and off. Update the test to cover thes new features. Signed-off-by: Simon Glass <sjg@chromium.org>
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (c) 2016 Google, Inc
|
|
* Written by Simon Glass <sjg@chromium.org>
|
|
*/
|
|
|
|
#ifndef _BACKLIGHT_H
|
|
#define _BACKLIGHT_H
|
|
|
|
enum {
|
|
BACKLIGHT_MAX = 100,
|
|
BACKLIGHT_MIN = 0,
|
|
BACKLIGHT_OFF = -1,
|
|
BACKLIGHT_DEFAULT = -2,
|
|
};
|
|
|
|
struct backlight_ops {
|
|
/**
|
|
* enable() - Enable a backlight
|
|
*
|
|
* @dev: Backlight device to enable
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int (*enable)(struct udevice *dev);
|
|
|
|
/**
|
|
* set_brightness - Set brightness
|
|
*
|
|
* @dev: Backlight device to update
|
|
* @percent: Brightness value (0 to 100, or BACKLIGHT_... value)
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int (*set_brightness)(struct udevice *dev, int percent);
|
|
};
|
|
|
|
#define backlight_get_ops(dev) ((struct backlight_ops *)(dev)->driver->ops)
|
|
|
|
/**
|
|
* backlight_enable() - Enable a backlight
|
|
*
|
|
* @dev: Backlight device to enable
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int backlight_enable(struct udevice *dev);
|
|
|
|
/**
|
|
* backlight_set_brightness - Set brightness
|
|
*
|
|
* @dev: Backlight device to update
|
|
* @percent: Brightness value (0 to 100, or BACKLIGHT_... value)
|
|
* @return 0 if OK, -ve on error
|
|
*/
|
|
int backlight_set_brightness(struct udevice *dev, int percent);
|
|
|
|
#endif
|