diff options
| author | Haojian Zhuang <haojian.zhuang@linaro.org> | 2018-02-17 12:06:18 +0800 | 
|---|---|---|
| committer | Haojian Zhuang <haojian.zhuang@linaro.org> | 2018-02-17 12:06:18 +0800 | 
| commit | 135d713c7ad2a27aac761d2942d4233399c74088 (patch) | |
| tree | a276e1373dcc74f3efacd3f1b2e128a31f51dfd7 | |
| parent | cc40f7fe017ad15884d7b7b93f9f9a702443f80b (diff) | |
hikey960: avoid hardcode on uart port
Avoid hardcode on uart port. The uart port could be auto detected
on HiKey960 platform.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
| -rw-r--r-- | plat/hisilicon/hikey960/hikey960_pm.c | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/plat/hisilicon/hikey960/hikey960_pm.c b/plat/hisilicon/hikey960/hikey960_pm.c index 6609530c..22963c4f 100644 --- a/plat/hisilicon/hikey960/hikey960_pm.c +++ b/plat/hisilicon/hikey960/hikey960_pm.c @@ -29,6 +29,7 @@  #define DMAC_GLB_REG_SEC	0x694  #define AXI_CONF_BASE		0x820 +static unsigned int uart_base;  static uintptr_t hikey960_sec_entrypoint;  static void hikey960_pwr_domain_standby(plat_local_state_t cpu_state) @@ -263,7 +264,7 @@ hikey960_pwr_domain_suspend_finish(const psci_power_state_t *target_state)  	if (hisi_test_ap_suspend_flag(cluster)) {  		hikey960_sr_dma_reinit();  		gicv2_cpuif_enable(); -		console_init(PL011_UART6_BASE, PL011_UART_CLK_IN_HZ, +		console_init(uart_base, PL011_UART_CLK_IN_HZ,  			     PL011_BAUDRATE);  	} @@ -295,6 +296,19 @@ static const plat_psci_ops_t hikey960_psci_ops = {  int plat_setup_psci_ops(uintptr_t sec_entrypoint,  			const plat_psci_ops_t **psci_ops)  { +	unsigned int id = 0; +	int ret; + +	ret = hikey960_read_boardid(&id); +	if (ret == 0) { +		if (id == 5300U) +			uart_base = PL011_UART5_BASE; +		else +			uart_base = PL011_UART6_BASE; +	} else { +		uart_base = PL011_UART6_BASE; +	} +  	hikey960_sec_entrypoint = sec_entrypoint;  	INFO("%s: sec_entrypoint=0x%lx\n", __func__, | 
