1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#include <cust_leds.h>
#include <cust_leds_def.h>
/****************************************************************************
* LED Variable Settings
***************************************************************************/
#define NLED_OFF 0
#define NLED_ON 1
#define NLED_BLINK 2
#define MIN_FRE_OLD_PWM 32 // the min frequence when use old mode pwm by kHz
#define PWM_DIV_NUM 8
#define ERROR_BL_LEVEL 0xFFFFFFFF
struct nled_setting
{
u8 nled_mode; //0, off; 1, on; 2, blink;
u32 blink_on_time ;
u32 blink_off_time;
};
typedef enum{
PMIC_PWM_0 = 0,
PMIC_PWM_1 = 1,
PMIC_PWM_2 = 2
} MT65XX_PMIC_PWM_NUMBER;
typedef enum{
ISINK_0 = 0, //4mA
ISINK_1 = 1, //8mA
ISINK_2 = 2, //12mA
ISINK_3 = 3, //16mA
ISINK_4 = 4, //20mA
ISINK_5 = 5 //24mA
} MT65XX_PMIC_ISINK_STEP;
typedef enum{
//32K clock
ISINK_1KHZ = 0,
ISINK_200HZ = 4,
ISINK_5HZ = 199,
ISINK_2HZ = 499,
ISINK_1HZ = 999,
ISINK_05HZ = 1999,
ISINK_02HZ = 4999,
ISINK_01HZ = 9999,
//2M clock
ISINK_2M_20KHZ = 2,
ISINK_2M_1KHZ = 61,
ISINK_2M_200HZ = 311,
ISINK_2M_5HZ = 12499,
ISINK_2M_2HZ = 31249,
ISINK_2M_1HZ = 62499
} MT65XX_PMIC_ISINK_FSEL;
typedef enum{
ISINK_PWM_MODE = 0,
ISINK_BREATH_MODE = 1,
ISINK_REGISTER_MODE = 2
} MT65XX_PMIC_ISINK_MODE;
/*****************PWM *************************************************/
//extern int time_array[PWM_DIV_NUM];
//extern u8 div_array[PWM_DIV_NUM]; //defined in leds_sw.h
//extern unsigned int backlight_PWM_div;// this para come from cust_leds.
/****************************************************************************
* structures
***************************************************************************/
struct mt65xx_led_data {
struct led_classdev cdev;
struct cust_mt65xx_led cust;
struct work_struct work;
int level;
int delay_on;
int delay_off;
};
|