一、定位源码
通过查看lowlevel_init.c中的函数do_lowlevel_init可知,电源管理函数名称为set_ps_hold_ctrl。
通过查看power.c,可找到函数set_ps_hold_ctrl。
二、修改源码
修改函数set_ps_hold_ctrl。
void set_ps_hold_ctrl(void)
{
if (cpu_is_exynos5())
exynos5_set_ps_hold_ctrl();
if (cpu_is_exynos4())
exynos4_set_ps_hold_ctrl();
}
在函数set_ps_hold_ctrl的上面增加新的函数
static void exynos4_set_ps_hold_ctrl(void)
{
__asm__ __volatile__(
"ldr r0, =0x1002330C\n"
"ldr r1, =0x300\n"
"str r1, [r0]\n"
"ldr r0, =0x11000C08\n"
"ldr r1, [r0]\n"
"bic r1, r1, $0x30\n"
"str r1, [r0]\n"
:
:
:"r0", "r1"
);
}