From 16debc621b4961dd4d95e744ec3948cb15a3b000 Mon Sep 17 00:00:00 2001
From: Troy Kisky <troy.kisky@boundarydevices.com>
Date: Wed, 2 Jan 2019 12:38:35 -0800
Subject: [PATCH] arm: clock_imx8mm: convert decode_intpll to use struct
 ana_grp2

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
---
 arch/arm/mach-imx/imx8m/clock_imx8mm.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mm.c b/arch/arm/mach-imx/imx8m/clock_imx8mm.c
index 25a76fe4e3a..37bd72ed7dd 100644
--- a/arch/arm/mach-imx/imx8m/clock_imx8mm.c
+++ b/arch/arm/mach-imx/imx8m/clock_imx8mm.c
@@ -45,22 +45,20 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num)
 
 static u32 decode_intpll(enum clk_root_src intpll)
 {
+	struct ana_grp2 *pll;
 	u32 gnrl_ctl, div_ctl, pll_clke_mask;
 	u32 main_div, pre_div, post_div, div;
 	u64 freq;
 
 	switch (intpll) {
 	case ARM_PLL_CLK:
-		gnrl_ctl = readl((void __iomem *)ARM_PLL_GNRL_CTL);
-		div_ctl = readl((void __iomem *)ARM_PLL_DIV_CTL);
+		pll = &ana_pll->arm_pll;
 		break;
 	case GPU_PLL_CLK:
-		gnrl_ctl = readl((void __iomem *)GPU_PLL_GNRL_CTL);
-		div_ctl = readl((void __iomem *)GPU_PLL_DIV_CTL);
+		pll = &ana_pll->gpu_pll;
 		break;
 	case VPU_PLL_CLK:
-		gnrl_ctl = readl((void __iomem *)VPU_PLL_GNRL_CTL);
-		div_ctl = readl((void __iomem *)VPU_PLL_DIV_CTL);
+		pll = &ana_pll->vpu_pll;
 		break;
 	case SYSTEM_PLL1_800M_CLK:
 	case SYSTEM_PLL1_400M_CLK:
@@ -71,8 +69,7 @@ static u32 decode_intpll(enum clk_root_src intpll)
 	case SYSTEM_PLL1_100M_CLK:
 	case SYSTEM_PLL1_80M_CLK:
 	case SYSTEM_PLL1_40M_CLK:
-		gnrl_ctl = readl((void __iomem *)SYS_PLL1_GNRL_CTL);
-		div_ctl = readl((void __iomem *)SYS_PLL1_DIV_CTL);
+		pll = &ana_pll->sys_pll1;
 		break;
 	case SYSTEM_PLL2_1000M_CLK:
 	case SYSTEM_PLL2_500M_CLK:
@@ -83,16 +80,17 @@ static u32 decode_intpll(enum clk_root_src intpll)
 	case SYSTEM_PLL2_125M_CLK:
 	case SYSTEM_PLL2_100M_CLK:
 	case SYSTEM_PLL2_50M_CLK:
-		gnrl_ctl = readl((void __iomem *)SYS_PLL2_GNRL_CTL);
-		div_ctl = readl((void __iomem *)SYS_PLL2_DIV_CTL);
+		pll = &ana_pll->sys_pll2;
 		break;
 	case SYSTEM_PLL3_CLK:
-		gnrl_ctl = readl((void __iomem *)SYS_PLL3_GNRL_CTL);
-		div_ctl = readl((void __iomem *)SYS_PLL3_DIV_CTL);
+		pll = &ana_pll->sys_pll3;
 		break;
 	default:
+		printf("int PLL %d not supporte\n", intpll);
 		return -EINVAL;
 	}
+	gnrl_ctl = readl(&pll->gnrl_ctl);
+	div_ctl = readl(&pll->div_ctl);
 
 	/* Only support SYS_XTAL 24M, PAD_CLK not take into consideration */
 	if ((gnrl_ctl & INTPLL_REF_CLK_SEL_MASK) != 0)
@@ -110,7 +108,7 @@ static u32 decode_intpll(enum clk_root_src intpll)
 
 	if (!(gnrl_ctl & INTPLL_LOCK_MASK)) {
 		puts("pll not locked\n");
-		return 0;
+		return -EINVAL;
 	}
 
 	switch (intpll) {
@@ -172,6 +170,7 @@ static u32 decode_intpll(enum clk_root_src intpll)
 		div = 20;
 		break;
 	default:
+		printf("int pll %d not supported\n", intpll);
 		return -EINVAL;
 	}
 
-- 
GitLab