展锐平台关机充电代码

./sprd/proprietories-source/charge

led的控制部分:

//./sprd/proprietories-source/charge/ui.c

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static void led_control(int level) {
      static int led_flag = 0;
         LOGE("***led_control***level=%d*led_flag=%d***\n",level,led_flag);
      if (level > 100)
        level = 100;
      else if (level < 0)
        level = 0;
      if (level < 90) {
        if (led_flag != LED_RED) {
            led_on(LED_RED);
            led_flag = LED_RED;
        }
      } else {
         if (led_flag != LED_GREEN) {
             led_on(LED_GREEN);
             led_flag = LED_GREEN;
        }
     }
}

//./sprd/proprietories-source/charge/backlight.c

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
78
79
80
81
82
83
84
85
86
87
88
89
#define LED_GREEN_DEV                   "/sys/class/leds/green/brightness"
#define LED_GREEN_MAX_DEV                   "/sys/class/leds/green/max_brightness"
#define LED_RED_DEV                     "/sys/class/leds/red/brightness"
#define LED_RED_MAX_DEV                     "/sys/class/leds/red/max_brightness"
#define LED_BLUE_DEV                    "/sys/class/leds/blue/brightness"
#define LED_BLUE_MAX_DEV                    "/sys/class/leds/blue/max_brightness"
 
#define LED_GREEN_DEV_K414                   "/sys/class/leds/sc27xx:green/brightness"
#define LED_GREEN_MAX_DEV_K414                   "/sys/class/leds/sc27xx:green/max_brightness"
#define LED_RED_DEV_K414                     "/sys/class/leds/sc27xx:red/brightness"
#define LED_RED_MAX_DEV_K414                     "/sys/class/leds/sc27xx:red/max_brightness"
#define LED_BLUE_DEV_K414                    "/sys/class/leds/sc27xx:blue/brightness"
#define LED_BLUE_MAX_DEV_K414                    "/sys/class/leds/sc27xx:blue/max_brightness"
 
static int eng_led_red_test(int brightness) {
        int fd;
        int ret;
        char buffer[8];
 
        fd = open(LED_RED_DEV, O_RDWR);
 
        if (fd < 0) {
                SPRD_DBG("%s: open %s fail", __func__, LED_RED_DEV);
                fd = open(LED_RED_DEV_K414,O_RDWR);
                if (fd < 0) {
                        SPRD_DBG("%s: open %s fail", __func__, LED_RED_DEV_K414);
                        return -1;
                }
        }
 
        memset(buffer, 0, sizeof(buffer));
        sprintf(buffer, "%d", brightness);
        ret = write(fd, buffer, strlen(buffer));
 
        close(fd);
 
        return 0;
}
 
static int eng_led_blue_test(int brightness) {
        int fd;
        int ret;
        char buffer[8];
 
        fd = open(LED_BLUE_DEV, O_RDWR);
 
        if (fd < 0) {
                SPRD_DBG("%s: open %s fail", __func__, LED_BLUE_DEV);
                fd = open(LED_BLUE_DEV_K414,O_RDWR);
                if (fd < 0) {
                        SPRD_DBG("%s: open %s fail", __func__, LED_BLUE_DEV_K414);
                        return -1;
                }
        }
 
        memset(buffer, 0, sizeof(buffer));
        sprintf(buffer, "%d", brightness);
        ret = write(fd, buffer, strlen(buffer));
 
        close(fd);
 
        return 0;
}
 
void led_off(void) {
    SPRD_DBG("%s: *********led_off****", __func__);
        eng_led_green_test(0);
        eng_led_red_test(0);
        eng_led_blue_test(0);
}
 
void led_on(int color) {
     SPRD_DBG("%s: *********led_on****", __func__);
        if (color == 1) {
                eng_led_green_test(max_green_led/2);
                eng_led_red_test(0);
                eng_led_blue_test(0);
        } else if (color == 2) {
                eng_led_red_test(max_red_led/2);
                eng_led_green_test(0);
                eng_led_blue_test(0);
        } else if (color == 3) {
                eng_led_blue_test(0);
                eng_led_red_test(max_green_led/2);
                eng_led_green_test(max_red_led/2);
        } else {
                SPRD_DBG("%s: color is %d invalid\n", __func__, color);
        }
}

  

  

  

posted @   轻轻的吻  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示