Exynos: Make sure ps_hold gets set in the SPL
Setting ps_hold ought to be one of the first things we do when we first boot up. If we wait until the main u-boot runs we won't set it in time and the PMIC may power us back off. Signed-off-by: Doug Anderson <dianders@chromium.org> Signed-off-by: Akshay Saraswat <akshay.s@samsung.com> Acked-by: Simon Glass <sjg@chromium.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
parent
0c04b1a83b
commit
567802bbd6
@ -39,6 +39,7 @@ enum {
|
|||||||
DO_CLOCKS = 1 << 1,
|
DO_CLOCKS = 1 << 1,
|
||||||
DO_MEM_RESET = 1 << 2,
|
DO_MEM_RESET = 1 << 2,
|
||||||
DO_UART = 1 << 3,
|
DO_UART = 1 << 3,
|
||||||
|
DO_POWER = 1 << 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
int do_lowlevel_init(void)
|
int do_lowlevel_init(void)
|
||||||
@ -62,9 +63,12 @@ int do_lowlevel_init(void)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* This is a normal boot (not a wake from sleep) */
|
/* This is a normal boot (not a wake from sleep) */
|
||||||
actions = DO_CLOCKS | DO_MEM_RESET;
|
actions = DO_CLOCKS | DO_MEM_RESET | DO_POWER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (actions & DO_POWER)
|
||||||
|
set_ps_hold_ctrl();
|
||||||
|
|
||||||
if (actions & DO_CLOCKS) {
|
if (actions & DO_CLOCKS) {
|
||||||
system_clock_init();
|
system_clock_init();
|
||||||
mem_ctrl_init(actions & DO_MEM_RESET);
|
mem_ctrl_init(actions & DO_MEM_RESET);
|
||||||
|
@ -112,6 +112,12 @@ static void exynos5_set_ps_hold_ctrl(void)
|
|||||||
EXYNOS_PS_HOLD_CONTROL_DATA_HIGH);
|
EXYNOS_PS_HOLD_CONTROL_DATA_HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set ps_hold data driving value high
|
||||||
|
* This enables the machine to stay powered on
|
||||||
|
* after the initial power-on condition goes away
|
||||||
|
* (e.g. power button).
|
||||||
|
*/
|
||||||
void set_ps_hold_ctrl(void)
|
void set_ps_hold_ctrl(void)
|
||||||
{
|
{
|
||||||
if (cpu_is_exynos5())
|
if (cpu_is_exynos5())
|
||||||
|
@ -1726,4 +1726,5 @@ uint32_t get_reset_status(void);
|
|||||||
|
|
||||||
/* Read the resume function and call it */
|
/* Read the resume function and call it */
|
||||||
void power_exit_wakeup(void);
|
void power_exit_wakeup(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user