Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

backlight: da903x_bl: control WLED output current in da9034

Update WLED output current source before changing brightness.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>

authored by

Haojian Zhuang and committed by
Eric Miao
b3a85495 f64dcac0

+11
+7
drivers/video/backlight/da903x_bl.c
··· 25 25 26 26 #define DA9034_WLED_CONTROL1 0x3C 27 27 #define DA9034_WLED_CONTROL2 0x3D 28 + #define DA9034_WLED_ISET(x) ((x) & 0x1f) 28 29 29 30 #define DA9034_WLED_BOOST_EN (1 << 5) 30 31 ··· 102 101 103 102 static int da903x_backlight_probe(struct platform_device *pdev) 104 103 { 104 + struct da9034_backlight_pdata *pdata = pdev->dev.platform_data; 105 105 struct da903x_backlight_data *data; 106 106 struct backlight_device *bl; 107 107 int max_brightness; ··· 128 126 data->id = pdev->id; 129 127 data->da903x_dev = pdev->dev.parent; 130 128 data->current_brightness = 0; 129 + 130 + /* adjust the WLED output current */ 131 + if (pdata) 132 + da903x_write(data->da903x_dev, DA9034_WLED_CONTROL2, 133 + DA9034_WLED_ISET(pdata->output_current)); 131 134 132 135 bl = backlight_device_register(pdev->name, data->da903x_dev, 133 136 data, &da903x_backlight_ops);
+4
include/linux/mfd/da903x.h
··· 96 96 int y_inverted; 97 97 }; 98 98 99 + struct da9034_backlight_pdata { 100 + int output_current; /* output current of WLED, from 0-31 (in mA) */ 101 + }; 102 + 99 103 /* DA9030 battery charger data */ 100 104 struct power_supply_info; 101 105