PMIC设置亮度的寄存器

来源:互联网 发布:老而不死是为贼 知乎 编辑:程序博客网 时间:2024/06/05 05:47

mt6516_pmic6326_hw.h 



// (0x67) DRIVER CTRL 6 BL
#define BL_DIM_DUTY_MASK                0x1F
#define BL_DIM_DUTY_SHIFT                0x0
#define BL_EN_MASK                        0x1
#define BL_EN_SHIFT                        0x5
#define BL_I_CAL_EN_MASK                0x1
#define BL_I_CAL_EN_SHIFT                0x6
#define BL_BYPASS_MASK                    0x1
#define BL_BYPASS_SHIFT                    0x7


pmic_mt6326.c



/* (0x67) DRIVER CTRL 6 BL */

void pmic_bl_dim_duty(kal_uint8 duty){
    ASSERT(duty <=31);

    pmic6326_reg[0x67] &= ~(BL_DIM_DUTY_MASK << BL_DIM_DUTY_SHIFT);

//

    pmic6326_reg[0x67] |= (duty << BL_DIM_DUTY_SHIFT);

//duty的值为上层传下来的。 BL_DIM_DUTY_SHIFT=0x0    最后确定了 pmic6326_reg[0x67] 的值。  


//下面的函数把这个pmic6326_reg[0x67] 数组的值通过i2c 写到PMIC的这个寄存器中。

    mt6326_write_byte(0x67, pmic6326_reg[0x67]);
}