《点亮ISINK三色灯》

环境:mt6580平台,android7.0

前言:由于有项目需要带三色灯的功能,调试了一天也没有搞出来。用以前的办法也搞不定,于是就愤怒了!
决定去 read the fucking code !!!。

一、原理图

1,原理图上很简单,就是靠三路ISINK来控制LED灯的亮灭。

二、代码部分

1,底层驱动部分1.1alps\vendor\mediatek\proprietary\bootable\bootloader\lk\target\ww826_80_weg_n\cust_leds.c

     这里是lk阶段的驱动代码,这里一共也就几十行代码。我们看关键的!
    
 这里我们先看 cust_led_list 这个结构体数组,它的类型是 struct cust_mt65xx_led
 
 我们再看看 enum mt65xx_led_mode 和 struct PWM_config
 
 
 那么我现再去看前边的 cust_led_list[] 数组,这里边的成员就明白是什么了。例如:
 
 
“red” :对应的是led的name
MT65XX_LED_MODE_PMIC :对应的是led的模式,这个枚举里一共有7种模式。当前red用的是PMIC模式
MT65XX_LED_PMIC_NLED_ISINK2:对应的是led的data,还不清楚作什么用。我们接着往下看
{0,0,0,0,0}:这个是config_data,和PWM数据相关的一个结构体变量。
那么回过头来看,这个cust_led_list[]是给谁去调用的呢?明显我们看到了这个函数:

这是一个结构体函数指针,那么这个 get_cust_led_list 指针又是在什么时候被调用的呢?

找到了两个关键的文件调用了它!其中ddp_pwm.c里主要是和lcd背光相关的,我们暂不去管它。去看 mt_leds.c,我们找到了它里边的这个函数:


我们看到了,get_cust_led_list 结构体指针在这里被调用了。那么我们又看看在那里调用了mt65xx_leds_brightness_set函数。

于是我们在 vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt6580/platform.c 这个文件里找到了调用,

………………………………..
………………………………..

我们看到它传进来的参数是 6和110。6对应的是led 的type,110对应的是led亮度大小。我们在cust_leds.h里看到这个枚举:

因此我们就知道这里是控制 lcd背光的,即是点亮背光灯,亮度为110。一整个lk层里,只点了LCD背光,
没有控制和ISINK三色灯相关的东西。那就只能是在kernel层里控制了,即是我们要去Kernel里跟代码。

可得知 platform_init()是在 lk层里的入口函数main初始化里被调用的。

这个是lk的入口函数,但不管怎么样。在跑完lk层以后,就会跳转到kernel层去。

结论1:在 lk层里还没有控制到 ISINK充电指示灯相关的东西,那么它应该是在kernel层里边去控制它的。

1.2,Kernel层power相关代码的路径:
alps/kernel-3.18/drivers/power/mediatek/xxx :这里是 common层充电函数的位置
alps/kernel-3.18/drivers/misc/mediatek/power/mt6580/ :这里是客制化电池相关的地方
alps/kernel-3.18/drivers/misc/mediatek/include/mt-plat/xxx
alps/kernel-3.18/drivers/misc/mediatek/leds/mt6580/xxx :这里就是led相关的,我们重点要关注这里!
我们要根据自己项目的配置去找到对应的代码。

ps: 由于这是第一次写这些东西,感觉上传图片类的和一些格式还是挺麻烦的。这篇就先写这里吧,下一篇写到kernel层的。

《点亮ISINK三色灯》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. Python:XPath与lxml类库
  2. webGL的一些咨询--web3D
  3. 【Web安全】通过机器学习破解验证码图片
  4. 正在编写推箱子游戏的自动求解程序
  5. 真正认识 realloc 的工作方式(转载)
  6. [转]PE文件格式详解(下)
  7. cad pu插件下载lisp_25个常用CAD插件 合集 下载
  8. 163邮箱服务器连接错误 请重试,163邮箱无法连接服务器
  9. 益智类游戏关卡设计:逆推法--巧解益智类游戏关卡设计
  10. 一文搞懂如何使用STM32驱动直流电机(普通PWM输出和L298N、高级定时器输出带死区双通道互补PWM和IR2110S及自举电路、H桥电路和电机正反转)
  11. 高级语言程序设计(c语言描述) 陆黎明 朱媛媛 练习答案,高级语言程序设计(c语言描述) 陆黎明 朱媛媛 练习答案...
  12. Go:内核线程、LWP、用户线程? 还是协程?
  13. 输入关键词获取今日头条免费图片
  14. 驯服最难以捉摸的野兽──创新
  15. 软件测试证述职报告ppt,实验室检测员的述职报告ppt
  16. Java实现找回密码
  17. java中定义ListNode
  18. 联想微型计算机重装,联想一体机电脑重装系统教程 一体机电脑重装系统
  19. vue中对echarts折线图设置基准线/警告线,可在输入框输入想要的值,并改变已有的基准线的值。
  20. 倒金字塔java语言_金字塔和倒金字塔

热门文章

  1. java基础面试重点,HR的话扎心了
  2. 网络基础BGP-IBGP-EBGP
  3. 实际项目中如何使用Git做分支管理
  4. alipay 证书 java_支付宝 APP支付(证书)方式遇到的问题和解决办法
  5. 如何创建一个四维的矩阵,存储多个3通道彩色图片
  6. Navicat 中创建MySQL函数失败的解决
  7. 计算机网络 知识点总结
  8. ubuntu 系统里面原来可以输入中文,突然输入法不能输入中文,但是搜索框内可以输入中文!解决办法
  9. zabbix proxy安装和配置
  10. 计算机坏了用英语怎么说,电脑坏了是什么意思