利用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
     ........
 
}

最新文章

  1. 手把手教android studio中安装Android Butterknife Zelezny (转)
  2. [WCF编程]3.WCF基础
  3. 文件IO函数和标准IO库的区别
  4. PHP--字符串处理函数
  5. GEOS库学习之五:与GDAL/OGR结合使用
  6. 新浪微博iOS客户端架构与优化之路
  7. read 计时命令
  8. (剑指Offer)面试题36:数组中的逆序对
  9. POJ 1734
  10. cocos2d-x 1970毫秒数转时间
  11. Codeforces Round #333 (Div. 1) B. Lipshitz Sequence 倍增 二分
  12. #pragma_pack(n)_与___attribute(aligned(n))
  13. Python-xml解析常用方法简介
  14. 如何运行一个vue工程
  15. 【经验分享(续篇)】Trachtenberg system(特拉亨伯格速算系统)
  16. 统计iis日志第一例的次数
  17. JAVA数据结构之链表
  18. 模块---hashlib、configparse、logging
  19. 我的Linux操作系统的发行版是什么?版本号是什么?
  20. 阿里云ECS服务器无法上传文件的解决方案

热门文章

  1. Android偏好设置(7)自定义Preference,和PreferenceDialog
  2. Hadoop 之Pig的安装的与配置之遇到的问题---待解决
  3. SP CAML工具
  4. HttpServletRequest对象,自己学习的心得。
  5. CF932C Permutation Cycle
  6. 2017广东工业大学程序设计竞赛决赛 G 等凹数字
  7. 浏览器和ES5的介绍
  8. 修改vim注释字体颜色
  9. ascii - 在八进制,十进制,十六进制中的 ASCII 字符集编码
  10. Java中文乱码处理