mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 00:11:51 +01:00 
			
		
		
		
	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>
		
			
				
	
	
		
			35 lines
		
	
	
		
			659 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			659 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0+
 | |
| /*
 | |
|  * Copyright (c) 2016 Google, Inc
 | |
|  * Written by Simon Glass <sjg@chromium.org>
 | |
|  */
 | |
| 
 | |
| #include <common.h>
 | |
| #include <dm.h>
 | |
| #include <backlight.h>
 | |
| 
 | |
| int backlight_enable(struct udevice *dev)
 | |
| {
 | |
| 	const struct backlight_ops *ops = backlight_get_ops(dev);
 | |
| 
 | |
| 	if (!ops->enable)
 | |
| 		return -ENOSYS;
 | |
| 
 | |
| 	return ops->enable(dev);
 | |
| }
 | |
| 
 | |
| int backlight_set_brightness(struct udevice *dev, int percent)
 | |
| {
 | |
| 	const struct backlight_ops *ops = backlight_get_ops(dev);
 | |
| 
 | |
| 	if (!ops->set_brightness)
 | |
| 		return -ENOSYS;
 | |
| 
 | |
| 	return ops->set_brightness(dev, percent);
 | |
| }
 | |
| 
 | |
| UCLASS_DRIVER(backlight) = {
 | |
| 	.id		= UCLASS_PANEL_BACKLIGHT,
 | |
| 	.name		= "backlight",
 | |
| };
 |