一、定位源碼
通過查看lowlevel_init.c中的函數(shù)do_lowlevel_init可知,電源管理函數(shù)名稱為set_ps_hold_ctrl揣炕。
通過查看power.c苞笨,可找到函數(shù)set_ps_hold_ctrl。
二篓跛、修改源碼
修改函數(shù)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();
}
在函數(shù)set_ps_hold_ctrl的上面增加新的函數(shù)
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"
);
}
電源芯片.png
GPIO.png