summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2017-05-23 05:34:53 -0500
committerJason Liu <jason.hui.liu@nxp.com>2017-11-03 02:36:51 +0800
commit6f6afc3039e8f284f1571d859777e3df0a57a6ae (patch)
tree68bcb5530a6903fe877263aec107fca66835c754
parent1489e2b3be1ea776a4e52c95f9b3bc710a98482e (diff)
MLK-14970-1 imx8: Update get cpu clock rate function for i.MX8QXP
Need to get A35 for cpu clock rate on i.MX8QXP. Signed-off-by: Ye Li <ye.li@nxp.com>
-rw-r--r--arch/arm/cpu/armv8/imx8/clock.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/arm/cpu/armv8/imx8/clock.c b/arch/arm/cpu/armv8/imx8/clock.c
index 3351ed244dd..5421857d609 100644
--- a/arch/arm/cpu/armv8/imx8/clock.c
+++ b/arch/arm/cpu/armv8/imx8/clock.c
@@ -10,6 +10,7 @@
#include <asm/imx-common/sci/sci.h>
#include <asm/arch/imx8-pins.h>
#include <asm/arch/i2c.h>
+#include <asm/arch/sys_proto.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -23,10 +24,17 @@ static u32 get_arm_main_clk(void)
sc_err_t err;
sc_pm_clock_rate_t clkrate;
- err = sc_pm_get_clock_rate((sc_ipc_t)gd->arch.ipc_channel_handle,
- SC_R_A53, SC_PM_CLK_CPU, &clkrate);
+ if (is_imx8qm())
+ err = sc_pm_get_clock_rate((sc_ipc_t)gd->arch.ipc_channel_handle,
+ SC_R_A53, SC_PM_CLK_CPU, &clkrate);
+ else if (is_imx8qxp())
+ err = sc_pm_get_clock_rate((sc_ipc_t)gd->arch.ipc_channel_handle,
+ SC_R_A35, SC_PM_CLK_CPU, &clkrate);
+ else
+ err = SC_ERR_UNAVAILABLE;
+
if (err != SC_ERR_NONE) {
- printf("sc get ARM A53 clk failed! err=%d\n", err);
+ printf("sc get ARM clk failed! err=%d\n", err);
return 0;
}
return clkrate;