Commit 2f006b2c authored by Sandrine Bailleux's avatar Sandrine Bailleux Committed by TrustedFirmware Code Review
Browse files

Merge "hikey960: Enable system power off callback" into integration

parents f56081e3 cfde1870
...@@ -166,6 +166,7 @@ void bl31_platform_setup(void) ...@@ -166,6 +166,7 @@ void bl31_platform_setup(void)
hikey960_edma_init(); hikey960_edma_init();
hikey960_iomcu_dma_init(); hikey960_iomcu_dma_init();
hikey960_gpio_init();
hisi_ipc_init(); hisi_ipc_init();
} }
......
...@@ -466,6 +466,13 @@ void hikey960_gpio_init(void) ...@@ -466,6 +466,13 @@ void hikey960_gpio_init(void)
pl061_gpio_register(GPIO19_BASE, 19); pl061_gpio_register(GPIO19_BASE, 19);
pl061_gpio_register(GPIO20_BASE, 20); pl061_gpio_register(GPIO20_BASE, 20);
pl061_gpio_register(GPIO21_BASE, 21); pl061_gpio_register(GPIO21_BASE, 21);
pl061_gpio_register(GPIO22_BASE, 22);
pl061_gpio_register(GPIO23_BASE, 23);
pl061_gpio_register(GPIO24_BASE, 24);
pl061_gpio_register(GPIO25_BASE, 25);
pl061_gpio_register(GPIO26_BASE, 26);
pl061_gpio_register(GPIO27_BASE, 27);
pl061_gpio_register(GPIO28_BASE, 28);
/* PCIE_PERST_N output low */ /* PCIE_PERST_N output low */
gpio_set_direction(89, GPIO_DIR_OUT); gpio_set_direction(89, GPIO_DIR_OUT);
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include <drivers/arm/cci.h> #include <drivers/arm/cci.h>
#include <drivers/arm/gicv2.h> #include <drivers/arm/gicv2.h>
#include <drivers/arm/pl011.h> #include <drivers/arm/pl011.h>
#include <drivers/arm/pl061_gpio.h>
#include <drivers/delay_timer.h> #include <drivers/delay_timer.h>
#include <lib/mmio.h> #include <lib/mmio.h>
#include <lib/psci/psci.h> #include <lib/psci/psci.h>
...@@ -116,6 +117,13 @@ void hikey960_pwr_domain_off(const psci_power_state_t *target_state) ...@@ -116,6 +117,13 @@ void hikey960_pwr_domain_off(const psci_power_state_t *target_state)
} }
} }
static void __dead2 hikey960_system_off(void)
{
gpio_set_direction(176, GPIO_DIR_OUT);
gpio_set_value(176, GPIO_LEVEL_LOW);
panic();
}
static void __dead2 hikey960_system_reset(void) static void __dead2 hikey960_system_reset(void)
{ {
dsb(); dsb();
...@@ -293,7 +301,7 @@ static const plat_psci_ops_t hikey960_psci_ops = { ...@@ -293,7 +301,7 @@ static const plat_psci_ops_t hikey960_psci_ops = {
.pwr_domain_off = hikey960_pwr_domain_off, .pwr_domain_off = hikey960_pwr_domain_off,
.pwr_domain_suspend = hikey960_pwr_domain_suspend, .pwr_domain_suspend = hikey960_pwr_domain_suspend,
.pwr_domain_suspend_finish = hikey960_pwr_domain_suspend_finish, .pwr_domain_suspend_finish = hikey960_pwr_domain_suspend_finish,
.system_off = NULL, .system_off = hikey960_system_off,
.system_reset = hikey960_system_reset, .system_reset = hikey960_system_reset,
.validate_power_state = hikey960_validate_power_state, .validate_power_state = hikey960_validate_power_state,
.validate_ns_entrypoint = hikey960_validate_ns_entrypoint, .validate_ns_entrypoint = hikey960_validate_ns_entrypoint,
......
...@@ -260,6 +260,13 @@ ...@@ -260,6 +260,13 @@
#define GPIO17_BASE UL(0xE8A1C000) #define GPIO17_BASE UL(0xE8A1C000)
#define GPIO20_BASE UL(0xE8A1F000) #define GPIO20_BASE UL(0xE8A1F000)
#define GPIO21_BASE UL(0xE8A20000) #define GPIO21_BASE UL(0xE8A20000)
#define GPIO22_BASE UL(0xFFF0B000)
#define GPIO23_BASE UL(0xFFF0C000)
#define GPIO24_BASE UL(0xFFF0D000)
#define GPIO25_BASE UL(0xFFF0E000)
#define GPIO26_BASE UL(0xFFF0F000)
#define GPIO27_BASE UL(0xFFF10000)
#define GPIO28_BASE UL(0xFFF1D000)
#define TZC_REG_BASE 0xE8A21000 #define TZC_REG_BASE 0xE8A21000
#define TZC_STAT0_REG (TZC_REG_BASE + 0x800) #define TZC_STAT0_REG (TZC_REG_BASE + 0x800)
......
...@@ -19,7 +19,7 @@ endif ...@@ -19,7 +19,7 @@ endif
CRASH_CONSOLE_BASE := PL011_UART6_BASE CRASH_CONSOLE_BASE := PL011_UART6_BASE
COLD_BOOT_SINGLE_CPU := 1 COLD_BOOT_SINGLE_CPU := 1
PLAT_PL061_MAX_GPIOS := 176 PLAT_PL061_MAX_GPIOS := 232
PROGRAMMABLE_RESET_ADDRESS := 1 PROGRAMMABLE_RESET_ADDRESS := 1
ENABLE_SVE_FOR_NS := 0 ENABLE_SVE_FOR_NS := 0
PLAT_PARTITION_BLOCK_SIZE := 4096 PLAT_PARTITION_BLOCK_SIZE := 4096
...@@ -95,12 +95,15 @@ BL2_SOURCES += lib/optee/optee_utils.c ...@@ -95,12 +95,15 @@ BL2_SOURCES += lib/optee/optee_utils.c
endif endif
BL31_SOURCES += drivers/arm/cci/cci.c \ BL31_SOURCES += drivers/arm/cci/cci.c \
drivers/arm/pl061/pl061_gpio.c \
drivers/gpio/gpio.c \
lib/cpus/aarch64/cortex_a53.S \ lib/cpus/aarch64/cortex_a53.S \
lib/cpus/aarch64/cortex_a72.S \ lib/cpus/aarch64/cortex_a72.S \
lib/cpus/aarch64/cortex_a73.S \ lib/cpus/aarch64/cortex_a73.S \
plat/common/plat_psci_common.c \ plat/common/plat_psci_common.c \
plat/hisilicon/hikey960/aarch64/hikey960_helpers.S \ plat/hisilicon/hikey960/aarch64/hikey960_helpers.S \
plat/hisilicon/hikey960/hikey960_bl31_setup.c \ plat/hisilicon/hikey960/hikey960_bl31_setup.c \
plat/hisilicon/hikey960/hikey960_bl_common.c \
plat/hisilicon/hikey960/hikey960_pm.c \ plat/hisilicon/hikey960/hikey960_pm.c \
plat/hisilicon/hikey960/hikey960_topology.c \ plat/hisilicon/hikey960/hikey960_topology.c \
plat/hisilicon/hikey960/drivers/pwrc/hisi_pwrc.c \ plat/hisilicon/hikey960/drivers/pwrc/hisi_pwrc.c \
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment