Commit | Line | Data |
---|---|---|
0f59858d SJ |
1 | /* |
2 | * Simple driver for Texas Instruments LM3630 LED Flash driver chip | |
3 | * Copyright (C) 2012 Texas Instruments | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of the GNU General Public License version 2 as | |
7 | * published by the Free Software Foundation. | |
8 | * | |
9 | */ | |
10 | ||
11 | #ifndef __LINUX_LM3639_H | |
12 | #define __LINUX_LM3639_H | |
13 | ||
14 | #define LM3639_NAME "lm3639_bl" | |
15 | ||
16 | enum lm3639_pwm { | |
17 | LM3639_PWM_DISABLE = 0x00, | |
18 | LM3639_PWM_EN_ACTLOW = 0x48, | |
19 | LM3639_PWM_EN_ACTHIGH = 0x40, | |
20 | }; | |
21 | ||
22 | enum lm3639_strobe { | |
23 | LM3639_STROBE_DISABLE = 0x00, | |
24 | LM3639_STROBE_EN_ACTLOW = 0x10, | |
25 | LM3639_STROBE_EN_ACTHIGH = 0x30, | |
26 | }; | |
27 | ||
28 | enum lm3639_txpin { | |
29 | LM3639_TXPIN_DISABLE = 0x00, | |
30 | LM3639_TXPIN_EN_ACTLOW = 0x04, | |
31 | LM3639_TXPIN_EN_ACTHIGH = 0x0C, | |
32 | }; | |
33 | ||
34 | enum lm3639_fleds { | |
35 | LM3639_FLED_DIASBLE_ALL = 0x00, | |
36 | LM3639_FLED_EN_1 = 0x40, | |
37 | LM3639_FLED_EN_2 = 0x20, | |
38 | LM3639_FLED_EN_ALL = 0x60, | |
39 | }; | |
40 | ||
41 | enum lm3639_bleds { | |
42 | LM3639_BLED_DIASBLE_ALL = 0x00, | |
43 | LM3639_BLED_EN_1 = 0x10, | |
44 | LM3639_BLED_EN_2 = 0x08, | |
45 | LM3639_BLED_EN_ALL = 0x18, | |
46 | }; | |
47 | enum lm3639_bled_mode { | |
48 | LM3639_BLED_MODE_EXPONETIAL = 0x00, | |
49 | LM3639_BLED_MODE_LINEAR = 0x10, | |
50 | }; | |
51 | ||
52 | struct lm3639_platform_data { | |
53 | unsigned int max_brt_led; | |
54 | unsigned int init_brt_led; | |
55 | ||
56 | /* input pins */ | |
57 | enum lm3639_pwm pin_pwm; | |
58 | enum lm3639_strobe pin_strobe; | |
59 | enum lm3639_txpin pin_tx; | |
60 | ||
61 | /* output pins */ | |
62 | enum lm3639_fleds fled_pins; | |
63 | enum lm3639_bleds bled_pins; | |
64 | enum lm3639_bled_mode bled_mode; | |
65 | ||
66 | void (*pwm_set_intensity) (int brightness, int max_brightness); | |
67 | int (*pwm_get_intensity) (void); | |
68 | }; | |
69 | #endif /* __LINUX_LM3639_H */ |