From 7c26b6ecea26be4811d040b8c3052b6f5ef1bfb4 Mon Sep 17 00:00:00 2001 From: Icenowy Zheng Date: Sat, 21 Jul 2018 20:41:12 +0800 Subject: [PATCH] allwinner: call PMIC setup code As the ATF may need to do some power initialization on Allwinner platform with AXP PMICs, call the PMIC setup code in BL31. Stub of PMIC setup code is added, to prevent undefined reference. Signed-off-by: Icenowy Zheng --- plat/allwinner/common/sunxi_bl31_setup.c | 2 ++ plat/allwinner/common/sunxi_private.h | 2 ++ plat/allwinner/sun50i_a64/platform.mk | 1 + plat/allwinner/sun50i_a64/sunxi_power.c | 16 ++++++++++++++++ plat/allwinner/sun50i_h6/platform.mk | 1 + plat/allwinner/sun50i_h6/sunxi_power.c | 16 ++++++++++++++++ 6 files changed, 38 insertions(+) create mode 100644 plat/allwinner/sun50i_a64/sunxi_power.c create mode 100644 plat/allwinner/sun50i_h6/sunxi_power.c diff --git a/plat/allwinner/common/sunxi_bl31_setup.c b/plat/allwinner/common/sunxi_bl31_setup.c index 8ecf49083..7e11cecf5 100644 --- a/plat/allwinner/common/sunxi_bl31_setup.c +++ b/plat/allwinner/common/sunxi_bl31_setup.c @@ -93,6 +93,8 @@ void bl31_platform_setup(void) sunxi_security_setup(); + sunxi_pmic_setup(); + INFO("BL31: Platform setup done\n"); } diff --git a/plat/allwinner/common/sunxi_private.h b/plat/allwinner/common/sunxi_private.h index e45f494ed..49a5c50da 100644 --- a/plat/allwinner/common/sunxi_private.h +++ b/plat/allwinner/common/sunxi_private.h @@ -13,6 +13,8 @@ void sunxi_cpu_on(unsigned int cluster, unsigned int core); void sunxi_disable_secondary_cpus(unsigned int primary_cpu); uint16_t sunxi_read_soc_id(void); + +void sunxi_pmic_setup(void); void sunxi_security_setup(void); #endif /* __SUNXI_PRIVATE_H__ */ diff --git a/plat/allwinner/sun50i_a64/platform.mk b/plat/allwinner/sun50i_a64/platform.mk index 236464fe8..e2868afd2 100644 --- a/plat/allwinner/sun50i_a64/platform.mk +++ b/plat/allwinner/sun50i_a64/platform.mk @@ -30,6 +30,7 @@ BL31_SOURCES += drivers/arm/gic/common/gic_common.c \ ${AW_PLAT}/common/sunxi_bl31_setup.c \ ${AW_PLAT}/common/sunxi_cpu_ops.c \ ${AW_PLAT}/common/sunxi_pm.c \ + ${AW_PLAT}/sun50i_a64/sunxi_power.c \ ${AW_PLAT}/common/sunxi_security.c \ ${AW_PLAT}/common/sunxi_topology.c diff --git a/plat/allwinner/sun50i_a64/sunxi_power.c b/plat/allwinner/sun50i_a64/sunxi_power.c new file mode 100644 index 000000000..50eaa6b9d --- /dev/null +++ b/plat/allwinner/sun50i_a64/sunxi_power.c @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2018, Icenowy Zheng + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include + +int sunxi_pmic_setup(void) +{ + /* STUB */ + NOTICE("BL31: STUB PMIC setup code called\n"); + + return 0; +} diff --git a/plat/allwinner/sun50i_h6/platform.mk b/plat/allwinner/sun50i_h6/platform.mk index c1b26fae6..e9ee23d03 100644 --- a/plat/allwinner/sun50i_h6/platform.mk +++ b/plat/allwinner/sun50i_h6/platform.mk @@ -30,6 +30,7 @@ BL31_SOURCES += drivers/arm/gic/common/gic_common.c \ ${AW_PLAT}/common/sunxi_bl31_setup.c \ ${AW_PLAT}/common/sunxi_cpu_ops.c \ ${AW_PLAT}/common/sunxi_pm.c \ + ${AW_PLAT}/sun50i_h6/sunxi_power.c \ ${AW_PLAT}/common/sunxi_security.c \ ${AW_PLAT}/common/sunxi_topology.c diff --git a/plat/allwinner/sun50i_h6/sunxi_power.c b/plat/allwinner/sun50i_h6/sunxi_power.c new file mode 100644 index 000000000..50eaa6b9d --- /dev/null +++ b/plat/allwinner/sun50i_h6/sunxi_power.c @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2018, Icenowy Zheng + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include + +int sunxi_pmic_setup(void) +{ + /* STUB */ + NOTICE("BL31: STUB PMIC setup code called\n"); + + return 0; +}