aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/backlight/da903x_bl.c
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-30 19:16:45 -0400
commitada47b5fe13d89735805b566185f4885f5a3f750 (patch)
tree644b88f8a71896307d71438e9b3af49126ffb22b /drivers/video/backlight/da903x_bl.c
parent43e98717ad40a4ae64545b5ba047c7b86aa44f4f (diff)
parent3280f21d43ee541f97f8cda5792150d2dbec20d5 (diff)
Merge branch 'wip-2.6.34' into old-private-masterarchived-private-master
Diffstat (limited to 'drivers/video/backlight/da903x_bl.c')
-rw-r--r--drivers/video/backlight/da903x_bl.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/drivers/video/backlight/da903x_bl.c b/drivers/video/backlight/da903x_bl.c
index 701a1081e199..87659ed79bd7 100644
--- a/drivers/video/backlight/da903x_bl.c
+++ b/drivers/video/backlight/da903x_bl.c
@@ -18,6 +18,7 @@
18#include <linux/fb.h> 18#include <linux/fb.h>
19#include <linux/backlight.h> 19#include <linux/backlight.h>
20#include <linux/mfd/da903x.h> 20#include <linux/mfd/da903x.h>
21#include <linux/slab.h>
21 22
22#define DA9030_WLED_CONTROL 0x25 23#define DA9030_WLED_CONTROL 0x25
23#define DA9030_WLED_CP_EN (1 << 6) 24#define DA9030_WLED_CP_EN (1 << 6)
@@ -25,6 +26,7 @@
25 26
26#define DA9034_WLED_CONTROL1 0x3C 27#define DA9034_WLED_CONTROL1 0x3C
27#define DA9034_WLED_CONTROL2 0x3D 28#define DA9034_WLED_CONTROL2 0x3D
29#define DA9034_WLED_ISET(x) ((x) & 0x1f)
28 30
29#define DA9034_WLED_BOOST_EN (1 << 5) 31#define DA9034_WLED_BOOST_EN (1 << 5)
30 32
@@ -94,15 +96,17 @@ static int da903x_backlight_get_brightness(struct backlight_device *bl)
94 return data->current_brightness; 96 return data->current_brightness;
95} 97}
96 98
97static struct backlight_ops da903x_backlight_ops = { 99static const struct backlight_ops da903x_backlight_ops = {
98 .update_status = da903x_backlight_update_status, 100 .update_status = da903x_backlight_update_status,
99 .get_brightness = da903x_backlight_get_brightness, 101 .get_brightness = da903x_backlight_get_brightness,
100}; 102};
101 103
102static int da903x_backlight_probe(struct platform_device *pdev) 104static int da903x_backlight_probe(struct platform_device *pdev)
103{ 105{
106 struct da9034_backlight_pdata *pdata = pdev->dev.platform_data;
104 struct da903x_backlight_data *data; 107 struct da903x_backlight_data *data;
105 struct backlight_device *bl; 108 struct backlight_device *bl;
109 struct backlight_properties props;
106 int max_brightness; 110 int max_brightness;
107 111
108 data = kzalloc(sizeof(*data), GFP_KERNEL); 112 data = kzalloc(sizeof(*data), GFP_KERNEL);
@@ -127,15 +131,20 @@ static int da903x_backlight_probe(struct platform_device *pdev)
127 data->da903x_dev = pdev->dev.parent; 131 data->da903x_dev = pdev->dev.parent;
128 data->current_brightness = 0; 132 data->current_brightness = 0;
129 133
130 bl = backlight_device_register(pdev->name, data->da903x_dev, 134 /* adjust the WLED output current */
131 data, &da903x_backlight_ops); 135 if (pdata)
136 da903x_write(data->da903x_dev, DA9034_WLED_CONTROL2,
137 DA9034_WLED_ISET(pdata->output_current));
138
139 props.max_brightness = max_brightness;
140 bl = backlight_device_register(pdev->name, data->da903x_dev, data,
141 &da903x_backlight_ops, &props);
132 if (IS_ERR(bl)) { 142 if (IS_ERR(bl)) {
133 dev_err(&pdev->dev, "failed to register backlight\n"); 143 dev_err(&pdev->dev, "failed to register backlight\n");
134 kfree(data); 144 kfree(data);
135 return PTR_ERR(bl); 145 return PTR_ERR(bl);
136 } 146 }
137 147
138 bl->props.max_brightness = max_brightness;
139 bl->props.brightness = max_brightness; 148 bl->props.brightness = max_brightness;
140 149
141 platform_set_drvdata(pdev, bl); 150 platform_set_drvdata(pdev, bl);
@@ -170,7 +179,7 @@ static int da903x_backlight_resume(struct device *dev)
170 return 0; 179 return 0;
171} 180}
172 181
173static struct dev_pm_ops da903x_backlight_pm_ops = { 182static const struct dev_pm_ops da903x_backlight_pm_ops = {
174 .suspend = da903x_backlight_suspend, 183 .suspend = da903x_backlight_suspend,
175 .resume = da903x_backlight_resume, 184 .resume = da903x_backlight_resume,
176}; 185};