[Vibrator]LK阶段如何实现开机震动

[Vibrator]LK阶段如何实现开机震动

[DESCRIPTION]

描述LK阶段实现开机震动

[SOLUTION]

1.若LK mt_pmic.c中有实现vibr_Enable_HW/vibr_Disable_HW函数,
请在LKplatform.c中Show Logo 之前添加对其调用。
如在platform_init()里面mboot_common_load_logo()之前添加如下代码:
-----------------------------------------
vibr_Enable_HW();//开启震动
mdelay(80);//震动80ms
vibr_Disable_HW();//关闭启震动
-----------------------------------------
2.若LK mt_pmic.c中没有实现vibr_Enable_HW/vibr_Disable_HW函数,
请按如下说明实现vibr_Enable_HW/vibr_Disable_HW函数,
然后再按上面说明在适当位置添加代码对其进行调用。
a).在LK mt_pmic.h中添加vibr_Enable_HW/vibr_Disable_HW函数申明
extern void vibr_Enable_HW(void);
extern void vibr_Disable_HW(void);
b).在LK mt_pmic.c中实现vibr_Enable_HW/vibr_Disable_HW函数
-------------------------------------------------
void vibr_Enable_HW(void)
{
xxxx_upmu_set_rg_vibr_vosel(0x5); // 0x5: 2.8V, 0x6: 3V, 0x7: 3.3V
xxxx_upmu_set_rg_vibr_en(1);
}
void vibr_Disable_HW(void)
{
xxxx_upmu_set_rg_vibr_en(0);
}
-------------------------------------------------
或者
-------------------------------------------------
void vibr_Enable_HW(void)
{
pmic_set_register_value(PMIC_RG_VIBR_VOSEL,5);// 0x5: 2.8V, 0x6: 3V, 0x7: 3.3V
pmic_set_register_value(PMIC_RG_VIBR_EN,1);
}
void vibr_Disable_HW(void)
{
pmic_set_register_value(PMIC_RG_VIBR_EN,0);
}
-------------------------------------------------
其中xxxx_upmu_set_rg_vibr_*/pmic_set_register_value表示LK upmu_common.c中提供的相应
API,
如upmu_set_rg_vibr_vosel/mt6325_upmu_set_rg_vibr_vosel/mt6331_upmu_set_rg_vibr_vosel等

猜你喜欢

转载自blog.csdn.net/sandform/article/details/51996938