summaryrefslogtreecommitdiff
path: root/plat/marvell/a8k/common/plat_ble_setup.c
diff options
context:
space:
mode:
authorChristine Gharzuzi <chrisg@marvell.com>2017-06-20 22:39:25 +0300
committerKostya Porotchkin <kostap@marvell.com>2017-07-16 18:05:09 +0300
commitdfcdadcbcd9e640d95413db9ca67c4d3036ed51e (patch)
treea5b2ee7a2e5879a5b6516751373d2d452cfc5a3c /plat/marvell/a8k/common/plat_ble_setup.c
parent0e478a6a1980b28bd7b1d2b057ee6fae1f6409f5 (diff)
atf: ARO: Introduce Adaptive Ring Oscillator
is a clock generator, which is used in AP806 as a source clock for the CPU clusters. In AP806 the ARO is not the major clock, and this document discuss the way to switch from PLL mode (which is the default mode) to ARO mode. The motivation for ARO usage is improving the Yield of the device at 2Ghz and improving the power consumption at that work point. In general – ARO allow lower Vmin for running in this premium work point which serves both cause (yield and power). Change-Id: I76a391a29cd98abedcd003f52d37a60459ee8b80 Signed-off-by: Christine Gharzuzi <chrisg@marvell.com> Reviewed-on: http://vgitil04.il.marvell.com:8080/40640 Tested-by: iSoC Platform CI <ykjenk@marvell.com> Reviewed-by: Hanna Hawa <hannah@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com>
Diffstat (limited to 'plat/marvell/a8k/common/plat_ble_setup.c')
-rw-r--r--plat/marvell/a8k/common/plat_ble_setup.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/plat/marvell/a8k/common/plat_ble_setup.c b/plat/marvell/a8k/common/plat_ble_setup.c
index 8815051a..7203a11d 100644
--- a/plat/marvell/a8k/common/plat_ble_setup.c
+++ b/plat/marvell/a8k/common/plat_ble_setup.c
@@ -39,6 +39,7 @@
#include <sys_info.h>
#include <dram_if.h>
#include <ccu.h>
+#include <aro.h>
#include <rfu.h>
#include <apn806_setup.h>
#include <cp110_setup.h>
@@ -143,26 +144,6 @@
#define EFUSE_SVC_REVISION_ID_0 0x8
#define EFUSE_SVC_BIN_PREMIUM 0x1
-enum cpu_clock_freq_mode {
- CPU_2000_DDR_1200_RCLK_1200 = 0x0,
- CPU_2000_DDR_1050_RCLK_1050 = 0x1,
- CPU_1600_DDR_800_RCLK_800 = 0x4,
- CPU_1800_DDR_1200_RCLK_1200 = 0x6,
- CPU_1800_DDR_1050_RCLK_1050 = 0x7,
- CPU_1600_DDR_900_RCLK_900 = 0x0B,
- CPU_1600_DDR_1050_RCLK_1050 = 0x0D,
- CPU_1600_DDR_900_RCLK_900_2 = 0x0E,
- CPU_1000_DDR_650_RCLK_650 = 0x13,
- CPU_1300_DDR_800_RCLK_800 = 0x14,
- CPU_1300_DDR_650_RCLK_650 = 0x17,
- CPU_1200_DDR_800_RCLK_800 = 0x19,
- CPU_1400_DDR_800_RCLK_800 = 0x1a,
- CPU_600_DDR_800_RCLK_800 = 0x1B,
- CPU_800_DDR_800_RCLK_800 = 0x1C,
- CPU_1000_DDR_800_RCLK_800 = 0x1D,
- CPU_DDR_RCLK_INVALID
-};
-
/* Notify bootloader on DRAM setup */
void pass_dram_sys_info(struct dram_config *cfg)
{
@@ -504,6 +485,8 @@ int ble_plat_setup(int *skip)
/* Setup AVS */
ble_plat_svc_config();
+ init_aro();
+
/* Get dram data from platform */
cfg = (struct dram_config *)plat_get_dram_data();