]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - src/patches/kernel/omap/beagle/0003-tlc59108-adjust-for-beagleboard-uLCD7.patch
Merge remote-tracking branch 'stevee/squid-zph-qos' into beyond-next
[people/teissler/ipfire-2.x.git] / src / patches / kernel / omap / beagle / 0003-tlc59108-adjust-for-beagleboard-uLCD7.patch
1 From 40cbddde06a9f0e1845810b904502f922fc3288f Mon Sep 17 00:00:00 2001
2 From: Koen Kooi <koen@dominion.thruhere.net>
3 Date: Fri, 27 Apr 2012 21:30:00 +0200
4 Subject: [PATCH 3/5] tlc59108: adjust for beagleboard+uLCD7
5
6 Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
7 ---
8 drivers/video/backlight/tlc59108.c | 46 ++++++++++++++++++++++++-----------
9 1 files changed, 31 insertions(+), 15 deletions(-)
10
11 diff --git a/drivers/video/backlight/tlc59108.c b/drivers/video/backlight/tlc59108.c
12 index 4f4ea34..40a21e7 100644
13 --- a/drivers/video/backlight/tlc59108.c
14 +++ b/drivers/video/backlight/tlc59108.c
15 @@ -29,9 +29,16 @@
16 #include <linux/backlight.h>
17 #include <linux/fb.h>
18
19 -#define tlc59108_MODULE_NAME "tlc59108"
20 #define TLC59108_MODE1 0x00
21 -#define TLC59108_PWM2 0x04
22 +#define TLC59108_MODE2 0x01
23 +#define TLC59108_PWM0 0x02
24 +#define TLC59108_PWM1 0x03
25 +#define TLC59108_PWM2 0x04
26 +#define TLC59108_PWM3 0x05
27 +#define TLC59108_PWM4 0x06
28 +#define TLC59108_PWM5 0x07
29 +#define TLC59108_PWM6 0x08
30 +#define TLC59108_PWM7 0x09
31 #define TLC59108_LEDOUT0 0x0c
32 #define TLC59108_LEDOUT1 0x0d
33 #define TLC59108_MAX_BRIGHTNESS 0xFF
34 @@ -43,15 +50,9 @@ struct tlc59108_bl {
35
36 static void tlc59108_bl_set_backlight(struct tlc59108_bl *data, int brightness)
37 {
38 - /* Set Mode1 Register */
39 - i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00);
40 -
41 - /* Set LEDOUT0 Register */
42 - i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x21);
43 -
44 /* Set Backlight Duty Cycle*/
45 i2c_smbus_write_byte_data(data->client, TLC59108_PWM2,
46 - brightness & 0xff);
47 + 0xff - brightness );
48 }
49
50 static int tlc59108_bl_get_brightness(struct backlight_device *dev)
51 @@ -65,8 +66,18 @@ static int tlc59108_bl_update_status(struct backlight_device *dev)
52 {
53 struct backlight_properties *props = &dev->props;
54 struct tlc59108_bl *data = dev_get_drvdata(&dev->dev);
55 +
56 int brightness = props->brightness;
57
58 + if (dev->props.state & BL_CORE_FBBLANK) {
59 + brightness = 0;
60 + /* Set LEDOUT0 Register */
61 + i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x10);
62 + } else {
63 + /* Set LEDOUT0 Register */
64 + i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x30);
65 + }
66 +
67 tlc59108_bl_set_backlight(data, brightness);
68
69 return 0;
70 @@ -77,7 +88,7 @@ static const struct backlight_ops bl_ops = {
71 .update_status = tlc59108_bl_update_status,
72 };
73
74 -static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
75 +static int __devinit tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
76 {
77 struct backlight_properties props;
78 struct tlc59108_bl *data = kzalloc(sizeof(struct tlc59108_bl),
79 @@ -104,6 +115,11 @@ static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
80
81 backlight_update_status(data->bl);
82
83 + i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00);
84 + i2c_smbus_write_byte_data(data->client, TLC59108_PWM2, 0x80);
85 + i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT1, 0x05);
86 + i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT1, 0x15);
87 +
88 return 0;
89
90 err_reg:
91 @@ -125,7 +141,7 @@ static int tlc59108_remove(struct i2c_client *c)
92 }
93
94 /* I2C Device ID table */
95 -static const struct i2c_device_id tlc59108_id[] = {
96 +static struct i2c_device_id tlc59108_id[] = {
97 { "tlc59108", 0 },
98 { }
99 };
100 @@ -134,12 +150,12 @@ MODULE_DEVICE_TABLE(i2c, tlc59108_id);
101 /* I2C driver data */
102 static struct i2c_driver tlc59108_driver = {
103 .driver = {
104 - .owner = THIS_MODULE,
105 - .name = tlc59108_MODULE_NAME,
106 + .owner = THIS_MODULE,
107 + .name = "tlc59108"
108 },
109 + .id_table = tlc59108_id,
110 .probe = tlc59108_probe,
111 .remove = tlc59108_remove,
112 - .id_table = tlc59108_id,
113 };
114
115 static int __init tlc59108_init(void)
116 @@ -157,4 +173,4 @@ module_exit(tlc59108_exit);
117
118 MODULE_DESCRIPTION("LCD/Backlight control for TLC59108");
119 MODULE_AUTHOR("Senthil Natarajan <senthil.n@ti.com>");
120 -MODULE_LICENSE("GPL v2");
121 +MODULE_LICENSE("GPL");
122 --
123 1.7.7.6
124