From ff205f5d76b0435663ddb961f109c803373117c5 Mon Sep 17 00:00:00 2001 From: Christine Gharzuzi Date: Tue, 24 Oct 2017 20:38:50 +0300 Subject: ap810: clocks: Initialize clocks using EAWG + ARO drivers 1. preparing EAWG's transactions: before triggering EAWG, transactions needs to be prepared for each PLL clock, and only then loaded into the EAWG's FIFO. chosen clocks value is read from the sampled-at-reset and efuse registers. 2. for each AP: EAWG is triggered using the primary system CPU, and only then the primary CPU (CPU0 in AP0) triggers its own AP's EAWG and enters WFE state to be awaken by the EAWG. (as the last transactions sent to the EAWG is a wake up command for the CPU) 3. once CPU0 is awaken, and all AP's EAWG are done, EAWG is disabled and CPU0 triggers ARO with suitable frequency target. (also read from sampled-at-reset and efuse registers). Change-Id: I8e67a2c56c825673f797b6f6b6e173f1eccb6a84 Signed-off-by: Christine Gharzuzi Reviewed-on: http://vgitil04.il.marvell.com:8080/47085 Tested-by: iSoC Platform CI Reviewed-by: Kostya Porotchkin --- include/drivers/marvell/ap810_init_clocks.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 include/drivers/marvell/ap810_init_clocks.h (limited to 'include/drivers') diff --git a/include/drivers/marvell/ap810_init_clocks.h b/include/drivers/marvell/ap810_init_clocks.h new file mode 100644 index 00000000..446b55be --- /dev/null +++ b/include/drivers/marvell/ap810_init_clocks.h @@ -0,0 +1,14 @@ +/* + * Copyright (C) 2017 Marvell International Ltd. + * + * SPDX-License-Identifier: BSD-3-Clause + * https://spdx.org/licenses + */ + +#ifndef AP810_INIT_CLOCKS_H_ +#define AP810_INIT_CLOCKS_H_ + +int ap810_clocks_init(int ap_count); + +#endif /* AP810_INIT_CLOCKS_H_ */ + -- cgit