利用mtk pmic自带的呼吸灯模式:
主要修改代码:
kernel-3.10/drivers/misc/mediatek/leds/mt6755/leds.c
 
int mt_brightness_set_pmic(enum mt65xx_led_pmic pmic_type, u32 level, u32 div)
{
     .......
   
    //begin: modified by chenhaibing add for breath-led 20151118
        #if 0
  pmic_set_register_value(MT6351_PMIC_RG_DRV_32K_CK_PDN, 0x0); /* Disable power down */
  pmic_set_register_value(MT6351_PMIC_RG_DRV_ISINK1_CK_PDN, 0);
  pmic_set_register_value(MT6351_PMIC_RG_DRV_ISINK1_CK_CKSEL, 0);
  pmic_set_register_value(MT6351_PMIC_ISINK_CH1_MODE, PMIC_PWM_0);
  pmic_set_register_value(MT6351_PMIC_ISINK_CH1_STEP, ISINK_3); /* 16mA */
  pmic_set_register_value(MT6351_PMIC_ISINK_DIM1_DUTY, 15);
  pmic_set_register_value(MT6351_PMIC_ISINK_DIM1_FSEL, ISINK_1KHZ); /* 1KHz */
  
  if (level) {
   pmic_set_register_value(MT6351_PMIC_ISINK_CH1_EN, NLED_ON);
  } else {
   pmic_set_register_value(MT6351_PMIC_ISINK_CH1_EN, NLED_OFF);
  }
     #endif
  
  if(255 == level) //led brightness branch for factory test
  {
  pmic_set_register_value(MT6351_PMIC_RG_DRV_32K_CK_PDN, 0x0); /* Disable power down */
  pmic_set_register_value(MT6351_PMIC_RG_DRV_ISINK1_CK_PDN, 0);
  pmic_set_register_value(MT6351_PMIC_RG_DRV_ISINK1_CK_CKSEL, 0);
  pmic_set_register_value(MT6351_PMIC_ISINK_CH1_MODE, PMIC_PWM_0);
  pmic_set_register_value(MT6351_PMIC_ISINK_CH1_STEP, ISINK_3); /* 16mA */
  pmic_set_register_value(MT6351_PMIC_ISINK_DIM1_DUTY, 15);
  pmic_set_register_value(MT6351_PMIC_ISINK_DIM1_FSEL, ISINK_1KHZ); /* 1KHz */
  pmic_set_register_value(MT6351_PMIC_ISINK_CH1_EN, NLED_ON);
  LEDS_DEBUG("chenhaibing test [LED]PMIC#%d:%d\n", pmic_type, level); 
  }
  else //led breath branch
  {
  
   pmic_set_register_value(MT6351_PMIC_RG_DRV_32K_CK_PDN,0x0); // Disable power down
         pmic_set_register_value(MT6351_PMIC_RG_DRV_ISINK1_CK_PDN,0);
         pmic_set_register_value(MT6351_PMIC_RG_DRV_ISINK1_CK_CKSEL,0);
   pmic_set_register_value(MT6351_PMIC_ISINK_CH1_MODE,ISINK_BREATH_MODE);
         pmic_set_register_value(MT6351_PMIC_ISINK_CH1_STEP,ISINK_3);//16mA
         pmic_set_register_value(MT6351_PMIC_ISINK_BREATH1_TR1_SEL,0x02);
         pmic_set_register_value(MT6351_PMIC_ISINK_BREATH1_TR2_SEL,0x02);
         pmic_set_register_value(MT6351_PMIC_ISINK_BREATH1_TF1_SEL,0x02);
         pmic_set_register_value(MT6351_PMIC_ISINK_BREATH1_TF2_SEL,0x02);
         pmic_set_register_value(MT6351_PMIC_ISINK_BREATH1_TON_SEL,0x02);
         pmic_set_register_value(MT6351_PMIC_ISINK_BREATH1_TOFF_SEL,0x03);
         pmic_set_register_value(MT6351_PMIC_ISINK_DIM1_DUTY,15);
         pmic_set_register_value(MT6351_PMIC_ISINK_DIM1_FSEL,1999);
  
   if (level)
   {
    pmic_set_register_value(MT6351_PMIC_ISINK_CHOP1_EN,1);
                           pmic_set_register_value(MT6351_PMIC_ISINK_CH1_BIAS_EN,1);
    pmic_set_register_value(MT6351_PMIC_ISINK_CH1_EN,NLED_ON);
    
   }
   else
   {
    pmic_set_register_value(MT6351_PMIC_ISINK_CHOP1_EN,0);
                           pmic_set_register_value(MT6351_PMIC_ISINK_CH1_BIAS_EN,0);
    pmic_set_register_value(MT6351_PMIC_ISINK_CH1_EN,NLED_OFF);
   }
  }
  //end: modified by chenhaibing add for breath-led 20151118
     ........
 
}

MT6753/MT6755 呼吸灯功能添加的更多相关文章

  1. Android呼吸灯添加

    平台:mtk 一.hal层入口    Lights.c (vendor\mediatek\proprietary\hardware\liblights)     char const*const RE ...

  2. ZYNQ自定义AXI总线IP应用——PWM实现呼吸灯效果

    一.前言 在实时性要求较高的场合中,CPU软件执行的方式显然不能满足需求,这时需要硬件逻辑实现部分功能.要想使自定义IP核被CPU访问,就必须带有总线接口.ZYNQ采用AXI BUS实现PS和PL之间 ...

  3. 【iCore4 双核心板_ARM】例程八:定时器PWM实验——呼吸灯

    实验原理: STM32的定时器有PWM功能,iCore4的蓝色LED连接在定时器的输出接口上, 可以通过定时器的PWM输出控制LED的亮度,从而实验呼吸灯的功能. 核心代码: int main(voi ...

  4. STM32呼吸灯

    使用STM32开发板和mbed平台实现的一个呼吸灯.材料,LED灯,电阻,STM32开发板. 先上一张效果图. 背景: 我们之前设置GPIO口使用了DigitalOut,数字信号输出.只能是GPIO口 ...

  5. (原创)用Verilog实现一个参数化的呼吸灯(Verilog,CPLD/FPGA)

    1.Abstract     观察到一个有趣的现象,每当把Apple笔记本合上的时候,那个白色的呼吸灯就会反复地由暗渐明,然后又由明渐暗,乍一看就像Apple笔记本在打盹休息一样,十分可爱!于是突发奇 ...

  6. STM8S PWM 应用 呼吸灯

    //主功能接受:使用MCU STM8S105C6 的PWM通道2 PC2 来做呼吸灯 已经验证OK,呵 //呵,这个PWM设置刚開始用还是有点麻烦,由于是自己摸索.花点时间.还是解决了 . //所用子 ...

  7. [FPGA]Verilog利用PWM调制巧妙完成RGB三色彩虹呼吸灯(给简约的题目以美妙的解答)

    概述 实现彩虹呼吸灯 题目就是这么简短,但这是目前我碰到的最有意思的一道题目,因为他有无数种解决方法,并且每一种都是那么高级或者巧妙,比如 可以利用3路不同初相的PWM调制信号驱动三颗RGB灯重叠呼吸 ...

  8. 12-ESP8266 SDK开发基础入门篇--PWM,呼吸灯

    https://www.cnblogs.com/yangfengwu/p/11094085.html PWM其实没有什么,就是看着官方给的API,,,然后就是用呗 对了,其实对于RTOS SDK版本的 ...

  9. MVC5 网站开发之八 栏目功能 添加、修改和删除

    本次实现栏目的浏览.添加.修改和删除. 栏目一共有三种类型. 常规栏目-可以添加子栏目,也可以添加内容模型.当不选择内容模型时,不能添加内容. 单页栏目-栏目只有一个页面,可以设置视图. 链接栏目-栏 ...

随机推荐

  1. Linux环境下ZooKeeper集群环境搭建关键步骤

    ZooKeeper版本:zookeeper-3.4.9 ZooKeeper节点:3个节点 以下为Linux环境下ZooKeeper集群环境搭建关键步骤: 前提条件:已完成在Linux环境中安装JDK并 ...

  2. Java几种常见的排序方法

    日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一 ...

  3. 关于JTable的使用

    JTable是个JavaSwing中的表格控件,可以用来显示数据和编辑数据.这里讲一下我的使用心得. JavaSwing讲究MVC理念,而这个JTable也可以说是个迷你的MVC模型.JTable只是 ...

  4. ubuntu14.04 + GTX980ti + cuda 8.0 ---Opencv3.1.0(基础+opecv_contrib)配置

    如果喜欢视频的话:YouTube 上有视频教程 https://www.youtube.com/watch?v=1YIAp3Lh5hI 后来我在mac上安装最新版的OpenCV 找到了一片非常详细的教 ...

  5. CF915C Permute Digits

    思路: 从左到右贪心放置数字,要注意判断这个数字能否放置在当前位. 实现: #include <bits/stdc++.h> using namespace std; typedef lo ...

  6. 《基于Node.js实现简易聊天室系列之引言》

    简述:这个聊天室是基于Node.js实现的,完成了基本的实时通信功能.在此之前,对node.js和mongodb一无所知,但是通过翻阅博客,自己动手基本达到了预期的效果.技术,不应该是闭门造车,而是学 ...

  7. 分享div、text、Box Shadow(阴影)演示及代码的页面

    附图: 直接上链接:www.css88.com/tool/css3Preview/Box-Shadow.html

  8. Objective-C Properties

    Objective-C Properties Apple introduced properties, a combination of new compiler directivesand a ne ...

  9. nginx php 配置模板

    server {     listen 80;     server_name    www.xxx.com;     #access_log     logs/www.xxx.com.access. ...

  10. Swift 中的值类型与引用类型

    顶级修饰 次级修饰 赋值类型 存储类型 值类型 值类型   深拷贝 栈 值类型 引用类型 浅拷贝 堆 引用类型 值类型 浅拷贝 堆 引用类型 引用类型 浅拷贝 堆 复合引用类型会改变内部值类型的存储行 ...