/***************************************************************************** 函 数 名 : bsp_hi6559_otp_threshold_set 功能描述 : 系统启动时设置过温警告阈值 输入参数 : @threshold 要设置的温度(摄氏度) 输出参数 : 无 返 回 值 : 无 *****************************************************************************/ void bsp_hi6559_otp_threshold_set(s32 threshold) { hi6559_excflags_t exc_flags = 0; /*lint --e{746,718}*/ spin_lock_irqsave(&g_hi6559_exc_st.lock,exc_flags); switch(threshold) { case 105: bsp_hi6559_reg_write_mask(HI6559_BANDGAP_THSD_ADJ2_OFFSET, 0x00,0x30); break; case 115: bsp_hi6559_reg_write_mask(HI6559_BANDGAP_THSD_ADJ2_OFFSET, 0x10,0x30); break; case 125: bsp_hi6559_reg_write_mask(HI6559_BANDGAP_THSD_ADJ2_OFFSET, 0x20,0x30);; break; case 135: bsp_hi6559_reg_write_mask(HI6559_BANDGAP_THSD_ADJ2_OFFSET, 0x30,0x30);; break; default: /* 不处理,采用寄存器默认值125°*/ break; } spin_unlock_irqrestore(&g_hi6559_exc_st.lock,exc_flags); return; }
/***************************************************************************** 函 数 名 : bsp_hi6559_uvp_threshold_set 功能描述 : 系统启动时设置欠压警告阈值 输入参数 : @threshold 要设置的电压(mV) 输出参数 : 无 返 回 值 : 无 *****************************************************************************/ void bsp_hi6559_uvp_threshold_set(s32 threshold) { hi6559_excflags_t exc_flags = 0; spin_lock_irqsave(&g_hi6559_exc_st.lock, exc_flags); switch(threshold) { case 3000: bsp_hi6559_reg_write_mask(HI6559_NP_REG_ADJ_OFFSET, 0x10,0x10); break; case 2850: bsp_hi6559_reg_write_mask(HI6559_NP_REG_ADJ_OFFSET, 0x00,0x10); break; default: /* 不处理,采用默认值2.85V */ break; } spin_unlock_irqrestore(&g_hi6559_exc_st.lock, exc_flags); return; }
/***************************************************************************** * 函 数 名 : hi6559_reg_write_mask * * 功能描述 : 对pmu芯片寄存器的某些bit置位 * * 输入参数 : u16 addr:待写入的寄存器地址 * u8 u8Data:读出的数据 * * 输出参数 : 无 * * 返 回 值 : 无 *****************************************************************************/ void bsp_dr_reg_write_mask(u16 addr, u8 value, u8 mask) { bsp_hi6559_reg_write_mask(addr, value, mask); }