zoukankan      html  css  js  c++  java
  • MT6753/MT6755 呼吸灯功能添加

    利用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 ", 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
         ........
     
    }
  • 相关阅读:
    通过web端启动关闭服务器程序以及检测程序运行状态
    Windows 自动监听程序,游戏服务器挂掉以后,自动监听程序将其重启起来
    自动监听程序,如果程序挂了,就重启
    删除log
    封装了一个C++类,当程序意外崩溃的时候可以生成dump文件,以便确定错误原因。
    贝塞尔曲线
    golang sql连接池 超时 数据库自动断开 ->127.0.0.1:3 306: wsarecv: An established connection was aborted by the software in your host machine.
    带控制的抢庄牛牛
    龙虎斗控制
    回归模型与房价预测
  • 原文地址:https://www.cnblogs.com/lexuele/p/5085643.html
Copyright © 2011-2022 走看看