kernel: port brightness settings from rel-st8-l
[linux-3.10.git] / include / linux / pwm_backlight.h
1 /*
2  * Generic PWM backlight driver data - see drivers/video/backlight/pwm_bl.c
3  *
4  * Copyright (c) 2013-2015, NVIDIA CORPORATION, All rights reserved.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16 #ifndef __LINUX_PWM_BACKLIGHT_H
17 #define __LINUX_PWM_BACKLIGHT_H
18
19 #include <linux/backlight.h>
20
21 struct pwm_bl_data {
22         struct pwm_device *pwm;
23         struct device *dev;
24         unsigned int period;
25         unsigned int lth_brightness;
26         unsigned int *levels;
27         unsigned int pwm_gpio;
28         u8 *bl_nonlinear;
29         u8 *bl_measured;
30         int (*notify)(struct device *, int brightness);
31         void (*notify_after)(struct device *, int brightness);
32         int (*check_fb)(struct device *, struct fb_info *);
33         void (*exit)(struct device *);
34 };
35
36 struct pwm_bl_data_dt_ops {
37         int (*init)(struct device *dev);
38         int (*notify)(struct device *, int brightness);
39         void (*notify_after)(struct device *, int brightness);
40         int (*check_fb)(struct device *, struct fb_info *);
41         void (*exit)(struct device *);
42         const char *blnode_compatible;
43 };
44
45 struct platform_pwm_backlight_data {
46         int pwm_id;
47         unsigned int max_brightness;
48         unsigned int dft_brightness;
49         unsigned int lth_brightness;
50         unsigned int pwm_period_ns;
51         unsigned int *levels;
52         unsigned int pwm_gpio;
53         u8 *bl_nonlinear;
54         u8 *bl_measured;
55         int (*init)(struct device *dev);
56         int (*notify)(struct device *dev, int brightness);
57         void (*notify_after)(struct device *dev, int brightness);
58         void (*exit)(struct device *dev);
59         int (*check_fb)(struct device *dev, struct fb_info *info);
60 };
61
62 #endif