diff options
author | Portisch <hugo.portisch@yahoo.de> | 2018-10-24 10:28:08 +0200 |
---|---|---|
committer | Dongjin Kim <tobetter@gmail.com> | 2020-02-13 17:13:40 +0900 |
commit | 45a984a34828143ba318330f1fb40d46e5204ca9 (patch) | |
tree | b10faa50a2c8833ba85540b0ddbf8c7e2e659f69 | |
parent | 2d34133d371a6560d63375f80db9968d2da3dd42 (diff) | |
download | u-boot-odroid-c1-45a984a34828143ba318330f1fb40d46e5204ca9.tar.gz |
gxb/gxl/gxm: do not turn off hdmi power on suspend
Change-Id: Id62166a7666c95b8675544b162b0bbc25ff22e92
18 files changed, 55 insertions, 28 deletions
diff --git a/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.c b/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.c index 86ef515e62..0c3ee2842b 100644..100755 --- a/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.c +++ b/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.c @@ -85,7 +85,7 @@ void enter_suspend(unsigned int suspend_from) uart_put_hex(hdmi_cec_func_config, 16); uart_puts("\n"); #endif - p_pwr_op->power_off_at_clk81(); + p_pwr_op->power_off_at_clk81(suspend_from); p_pwr_op->power_off_at_24M(); switch_to_32k(); diff --git a/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.h b/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.h index 0aa4ed1449..08053b7b3e 100644..100755 --- a/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.h +++ b/arch/arm/cpu/armv8/gxb/firmware/scp_task/suspend.h @@ -24,7 +24,7 @@ #define CEC_WAKEUP_SRC (1<<8) struct pwr_op { - void (*power_off_at_clk81)(void); + void (*power_off_at_clk81)(unsigned int); void (*power_on_at_clk81)(void); void (*power_off_at_24M)(void); diff --git a/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.c b/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.c index 3032c3fbfa..8e18716a21 100644..100755 --- a/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.c +++ b/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.c @@ -75,7 +75,7 @@ void enter_suspend(unsigned int suspend_from) uart_put_hex(hdmi_cec_func_config, 16); uart_puts("\n"); #endif - p_pwr_op->power_off_at_clk81(); + p_pwr_op->power_off_at_clk81(suspend_from); p_pwr_op->power_off_at_24M(); gxbb_com_gate_off(); diff --git a/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.h b/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.h index d0a9eef069..65b45fa12a 100644..100755 --- a/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.h +++ b/arch/arm/cpu/armv8/gxl/firmware/scp_task/suspend.h @@ -26,7 +26,7 @@ #define ETH_PHY_WAKEUP_SRC (1<<9) struct pwr_op { - void (*power_off_at_clk81)(void); + void (*power_off_at_clk81)(unsigned int); void (*power_on_at_clk81)(void); void (*power_off_at_24M)(void); diff --git a/board/amlogic/gxb_p200_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxb_p200_v1/firmware/scp_task/pwr_ctrl.c index f266c649ab..de9f283f70 100755 --- a/board/amlogic/gxb_p200_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxb_p200_v1/firmware/scp_task/pwr_ctrl.c @@ -85,7 +85,7 @@ static void power_on_vcck(void) aml_update_bits(AO_GPIO_O_EN_N, 1<<20, 1<<20); } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { power_off_3v3(); power_off_vcck(); diff --git a/board/amlogic/gxb_p201_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxb_p201_v1/firmware/scp_task/pwr_ctrl.c index 0297cb240b..4437699b8d 100755 --- a/board/amlogic/gxb_p201_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxb_p201_v1/firmware/scp_task/pwr_ctrl.c @@ -84,7 +84,7 @@ static void power_on_vcck(void) aml_update_bits(AO_GPIO_O_EN_N, 1<<20, 1<<20); } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { power_off_3v3(); power_off_vcck(); diff --git a/board/amlogic/gxb_skt_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxb_skt_v1/firmware/scp_task/pwr_ctrl.c index f3fc3f7931..6efdf5a5c5 100755 --- a/board/amlogic/gxb_skt_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxb_skt_v1/firmware/scp_task/pwr_ctrl.c @@ -85,7 +85,7 @@ static void power_on_vcck(void) aml_update_bits(AO_GPIO_O_EN_N, 1<<20, 1<<20); } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { power_off_3v3(); power_off_vcck(); diff --git a/board/amlogic/gxl_p212_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_p212_v1/firmware/scp_task/pwr_ctrl.c index 1079a20c15..d3f180aa65 100755 --- a/board/amlogic/gxl_p212_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_p212_v1/firmware/scp_task/pwr_ctrl.c @@ -95,9 +95,11 @@ static void power_off_at_mcu(unsigned int shutdown) } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); /* reduce power */ diff --git a/board/amlogic/gxl_p241_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_p241_v1/firmware/scp_task/pwr_ctrl.c index 55a460b97a..632666a19b 100755 --- a/board/amlogic/gxl_p241_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_p241_v1/firmware/scp_task/pwr_ctrl.c @@ -98,9 +98,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); /* reduce power */ diff --git a/board/amlogic/gxl_p271_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_p271_v1/firmware/scp_task/pwr_ctrl.c index cb4a438880..eb4c931d74 100755 --- a/board/amlogic/gxl_p271_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_p271_v1/firmware/scp_task/pwr_ctrl.c @@ -90,9 +90,18 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_mcu(unsigned int shutdown) { - hdmi_5v_ctrl(OFF); + if(shutdown == SYS_POWEROFF) { + aml_update_bits(PREG_PAD_GPIO3_EN_N, 1 << 14, 0); + aml_update_bits(PREG_PAD_GPIO3_O, 1 << 14, 1 << 14); + } +} +static void power_off_at_clk81(unsigned int suspend_from) +{ + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); /* reduce power */ diff --git a/board/amlogic/gxl_p281_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_p281_v1/firmware/scp_task/pwr_ctrl.c index 0e0dc0df55..8d058c968f 100755 --- a/board/amlogic/gxl_p281_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_p281_v1/firmware/scp_task/pwr_ctrl.c @@ -97,9 +97,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); /* reduce power */ diff --git a/board/amlogic/gxl_p400_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_p400_v1/firmware/scp_task/pwr_ctrl.c index 53898c4123..1a38e09070 100755 --- a/board/amlogic/gxl_p400_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_p400_v1/firmware/scp_task/pwr_ctrl.c @@ -116,9 +116,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); // reduce power } diff --git a/board/amlogic/gxl_p401_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_p401_v1/firmware/scp_task/pwr_ctrl.c index 53898c4123..1a38e09070 100755 --- a/board/amlogic/gxl_p401_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_p401_v1/firmware/scp_task/pwr_ctrl.c @@ -116,9 +116,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); // reduce power } diff --git a/board/amlogic/gxl_skt_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxl_skt_v1/firmware/scp_task/pwr_ctrl.c index 36c0a25aee..5d3e43fcfd 100755 --- a/board/amlogic/gxl_skt_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxl_skt_v1/firmware/scp_task/pwr_ctrl.c @@ -93,9 +93,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_d, CONFIG_VDDEE_SLEEP_VOLTAGE); // reduce power } diff --git a/board/amlogic/gxm_q200_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxm_q200_v1/firmware/scp_task/pwr_ctrl.c index 963bceef8b..cc49ff4b31 100755 --- a/board/amlogic/gxm_q200_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxm_q200_v1/firmware/scp_task/pwr_ctrl.c @@ -116,9 +116,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); // reduce power } diff --git a/board/amlogic/gxm_q201_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxm_q201_v1/firmware/scp_task/pwr_ctrl.c index aa82781987..9ed77f89e9 100755 --- a/board/amlogic/gxm_q201_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxm_q201_v1/firmware/scp_task/pwr_ctrl.c @@ -116,9 +116,11 @@ static void vcck_ctrl(unsigned int ctrl) } } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); // reduce power } diff --git a/board/amlogic/gxm_skt_v1/firmware/scp_task/pwr_ctrl.c b/board/amlogic/gxm_skt_v1/firmware/scp_task/pwr_ctrl.c index 69bdb39f9a..6641bf2f4d 100755 --- a/board/amlogic/gxm_skt_v1/firmware/scp_task/pwr_ctrl.c +++ b/board/amlogic/gxm_skt_v1/firmware/scp_task/pwr_ctrl.c @@ -115,9 +115,11 @@ static void power_off_at_mcu(unsigned int shutdown) } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { - hdmi_5v_ctrl(OFF); + if(suspend_from == SYS_POWEROFF) { + hdmi_5v_ctrl(OFF); + } vcck_ctrl(OFF); pwm_set_voltage(pwm_b, CONFIG_VDDEE_SLEEP_VOLTAGE); // reduce power } diff --git a/board/hardkernel/odroidc2/firmware/scp_task/pwr_ctrl.c b/board/hardkernel/odroidc2/firmware/scp_task/pwr_ctrl.c index 56b45e1978..224e05b1ff 100755 --- a/board/hardkernel/odroidc2/firmware/scp_task/pwr_ctrl.c +++ b/board/hardkernel/odroidc2/firmware/scp_task/pwr_ctrl.c @@ -85,7 +85,7 @@ static void power_on_vcck(void) aml_update_bits(AO_GPIO_O_EN_N, 1<<20, 1<<20); } -static void power_off_at_clk81(void) +static void power_off_at_clk81(unsigned int suspend_from) { power_off_3v3(); power_off_vcck(); |