8. LED调试日志
来源:互联网 发布:二战法国 知乎 编辑:程序博客网 时间:2024/06/10 20:50
1. led灯又称三色灯,有R/G/B三基色。均有256(0-255)的亮度级别(用PWM波实现?),256*256*256 = 1600w,通过设置三基色可以配出1600w种颜色,几乎包括所有颜色。2. 驱动只负责关机充电的led指示灯控制,控制代码在(开机状态的控制由上层负责):alps\vendor\mediatek\proprietary\external\charger(关机充电指示灯控制)、alps\vendor\mediatek\proprietary\external\ipod(开启了快速启动的关机充电指示灯控制)alps\vendor\mediatek\proprietary\external\charger\charging_control.cpp(关机充电指示灯控制)mtk默认的控制策略:0~89亮红灯 90~100亮绿灯on_uevent()if (is_charging_source_available()) // 如果正在充电(AC/USB/wireless) - 读取sysfs节点{bc = get_capacity();// 获取电池电量百分比 - 读取"/sys/class/power_supply/battery/capacity"if (bc >= 90) {lights_full();// 关闭red,打开green(255)- 通过 写"/sys/class/leds/green/brightness" ""/sys/class/leds/red/brightness""} else {lights_on();// 关闭green,打开red(255)- 通过 写"/sys/class/leds/green/brightness" ""/sys/class/leds/red/brightness""}}定制化控制策略:0~14亮红灯 15~89亮蓝灯 90~100亮绿灯on_uevent()if (is_charging_source_available()) // 如果正在充电(AC/USB/wireless) - 读取sysfs节点{bc = get_capacity();// 获取电池电量百分比 - 读取"/sys/class/power_supply/battery/capacity"if (bc >= 90) {lights_full();// 关闭red,关闭blue,打开green(255)- 通过 写"/sys/class/leds/green/brightness" "/sys/class/leds/red/brightness"} else {+if((bc >= 15)&&(bc < 90))+lights_on_15_89();// 关闭red,关闭green,打开blue(255)- 通过 写"/sys/class/leds/green/brightness" "/sys/class/leds/red/brightness"+elselights_on();// 关闭green,关闭blue,打开red(255)- 通过 写"/sys/class/leds/green/brightness" "/sys/class/leds/red/brightness"}}3. 关闭三色灯 dts中将led_mode改为0 led0:led@0 { compatible = "mediatek,red";- led_mode = <3>;+ led_mode = <0>; led1:led@1 { compatible = "mediatek,green";- led_mode = <2>;+ led_mode = <0>; led2:led@2 { compatible = "mediatek,blue";- led_mode = <3>;+ led_mode = <0>;调试案例案例一: 三色灯只有R/G, Blue无功能 - dts中的GPIO控制脚配置不对现象: 平台: androidN,MTK6737排查过程: 1. Blue无功能,查看硬件原理图:6737的R、G、B分别接在ISINK0、ISINK1、GPIO63(AD27) 2. 修改dts中B的GPIO控制配置: GPIO58->GPIO63/* LEDS GPIO Kernel Standardization start */&pio {- pinctrl_led0: pinctrl_led0@gpio58 {+ pinctrl_led0: pinctrl_led0@gpio63 {pins_cmd_dat {-pins = <PINMUX_GPIO58__FUNC_GPIO58>;+ pins = <PINMUX_GPIO63__FUNC_GPIO63>;==>ok案例二: led三色灯(接在PMIC)亮度改为70%平台: androidL,MTK6580步骤: 1. 修改alps\kernel-3.10\drivers\misc\mediatek\leds\mt6580\leds.cmt_brightness_set_pmic()中// 将原本的16ma 改为 12ma,大概降为70%if (pmic_type == MT65XX_LED_PMIC_LCD_ISINK)else if(pmic_type == MT65XX_LED_PMIC_NLED_ISINK0)else if(pmic_type == MT65XX_LED_PMIC_NLED_ISINK1)// 查看原理图: R、G、B分别接在PMIC的ISINK1、ISINK2、ISINK3-pmic_set_register_value(PMIC_ISINK_CH1_STEP,ISINK_2);//12mA+pmic_set_register_value(PMIC_ISINK_CH1_STEP,ISINK_3);//16mAelse if(pmic_type == MT65XX_LED_PMIC_NLED_ISINK2)-pmic_set_register_value(PMIC_ISINK_CH1_STEP,ISINK_2);//12mA+pmic_set_register_value(PMIC_ISINK_CH1_STEP,ISINK_3);//16mAelse if(pmic_type == MT65XX_LED_PMIC_NLED_ISINK3)-pmic_set_register_value(PMIC_ISINK_CH1_STEP,ISINK_2);//12mA+pmic_set_register_value(PMIC_ISINK_CH1_STEP,ISINK_3);//16mA注:根据原理图,6737的R、G、B分别接在ISINK0、ISINK1、GPIO63(AD27)【说明B无法在软件上控制亮度】6737的R、G通过PMIC控制亮灭即亮度, B经dts通过GPIO控制亮灭
阅读全文
0 0
- 8. LED调试日志
- 裸机调试-led,蜂鸣器,按键
- 调试日志
- 【STM32F429开发日志】+hello led(闪烁led灯)
- Android [LED]如何配置LCD背光和LED,调试方法
- [LED]如何配置LCD背光和LED,调试方法
- LED调试中碰到的优先级问题
- TQ2440 LED流水灯调试过程
- 调试LED遇到的问题和解决方法
- TQ2440 LED流水灯调试过程
- LED字符设备驱动调试笔记
- 利用用平台GPIO LED调试
- mtk 6572平台led指示灯 调试
- P7 LED点阵模组 调试过程
- 利用Eclipse+openJTAG调试led.axf文件
- 专题6-添加调试信息(led)
- mtk 6572平台led指示灯 调试
- //写入与LED交互的日志,和LED显示屏的交互日志
- spark1.x-性能优化策略
- 2017-06-28 DBA日记,查询v$rman_status缓慢诊断与优化
- 通讯录上面有A- Z #的实现
- activiti并发多实例子流程任务处理
- LogMiner的使用
- 8. LED调试日志
- 547. Friend Circles
- abap开发常用表
- 数据结构---图的邻接表
- python-I
- Python模块
- [RK3288][Android6.0] WiFi之Framework的socket(客户端)
- Turtlebot_follower
- 白盒测试的逻辑覆盖方法