[PATCH] i.MX clko: Checking for clko-line properly

Alexander Shiyan shc_work at mail.ru
Mon Jun 25 04:54:58 EDT 2012


This patch adds a check for the correct number of CLKO-line.

Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
 arch/arm/mach-imx/clko.c        |    6 ++++--
 arch/arm/mach-imx/speed-imx21.c |    3 ++-
 arch/arm/mach-imx/speed-imx25.c |    3 ++-
 arch/arm/mach-imx/speed-imx27.c |    3 ++-
 arch/arm/mach-imx/speed-imx35.c |    3 ++-
 arch/arm/mach-imx/speed-imx51.c |    3 ++-
 6 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/arch/arm/mach-imx/clko.c b/arch/arm/mach-imx/clko.c
index 4c5df71..aeafaa9 100644
--- a/arch/arm/mach-imx/clko.c
+++ b/arch/arm/mach-imx/clko.c
@@ -35,8 +35,10 @@ static int do_clko(int argc, char *argv[])
 
 	if (div != 0) {
 		ret = imx_clko_set_div(num, div);
-		if (ret != div)
-			printf("limited divider to %d\n", ret);
+		if (ret < 0)
+			printf("CLKO-line %i not supported.\n", num);
+		else if (ret != div)
+			printf("Divider limited to %d.\n", ret);
 	}
 
 	return 0;
diff --git a/arch/arm/mach-imx/speed-imx21.c b/arch/arm/mach-imx/speed-imx21.c
index 6b44efa..4729583 100644
--- a/arch/arm/mach-imx/speed-imx21.c
+++ b/arch/arm/mach-imx/speed-imx21.c
@@ -16,6 +16,7 @@
  */
 
 #include <common.h>
+#include <asm-generic/errno.h>
 #include <mach/imx-regs.h>
 #include <mach/generic.h>
 #include <mach/clock.h>
@@ -167,7 +168,7 @@ int imx_clko_set_div(int num, int div)
 	ulong pcdr;
 
 	if (num != 1)
-		return;
+		return -ENODEV;
 
 	div--;
 	div &= 0x7;
diff --git a/arch/arm/mach-imx/speed-imx25.c b/arch/arm/mach-imx/speed-imx25.c
index b5c9822..ed14113 100644
--- a/arch/arm/mach-imx/speed-imx25.c
+++ b/arch/arm/mach-imx/speed-imx25.c
@@ -1,4 +1,5 @@
 #include <common.h>
+#include <asm-generic/errno.h>
 #include <mach/imx-regs.h>
 #include <io.h>
 #include <mach/clock.h>
@@ -116,7 +117,7 @@ int imx_clko_set_div(int num, int div)
 	unsigned long mcr = readl(IMX_CCM_BASE + 0x64);
 
 	if (num != 1)
-		return;
+		return -ENODEV;
 
 	div -= 1;
 	div &= 0x3f;
diff --git a/arch/arm/mach-imx/speed-imx27.c b/arch/arm/mach-imx/speed-imx27.c
index 6c66344..644fd04 100644
--- a/arch/arm/mach-imx/speed-imx27.c
+++ b/arch/arm/mach-imx/speed-imx27.c
@@ -16,6 +16,7 @@
  */
 
 #include <common.h>
+#include <asm-generic/errno.h>
 #include <mach/imx-regs.h>
 #include <mach/generic.h>
 #include <mach/clock.h>
@@ -194,7 +195,7 @@ int imx_clko_set_div(int num, int div)
 	ulong pcdr;
 
 	if (num != 1)
-		return;
+		return -ENODEV;
 
 	div--;
 	div &= 0x7;
diff --git a/arch/arm/mach-imx/speed-imx35.c b/arch/arm/mach-imx/speed-imx35.c
index 28cd1b1..2b707aa 100644
--- a/arch/arm/mach-imx/speed-imx35.c
+++ b/arch/arm/mach-imx/speed-imx35.c
@@ -16,6 +16,7 @@
  */
 
 #include <common.h>
+#include <asm-generic/errno.h>
 #include <mach/imx-regs.h>
 #include <io.h>
 #include <mach/clock.h>
@@ -208,7 +209,7 @@ int imx_clko_set_div(int num, int div)
 	unsigned long cosr = readl(IMX_CCM_BASE + CCM_COSR);
 
 	if (num != 1)
-		return;
+		return -ENODEV;
 
 	div -= 1;
 	div &= 0x3f;
diff --git a/arch/arm/mach-imx/speed-imx51.c b/arch/arm/mach-imx/speed-imx51.c
index f716346..63d4932 100644
--- a/arch/arm/mach-imx/speed-imx51.c
+++ b/arch/arm/mach-imx/speed-imx51.c
@@ -1,6 +1,7 @@
 #include <common.h>
 #include <io.h>
 #include <asm-generic/div64.h>
+#include <asm-generic/errno.h>
 #include <mach/imx51-regs.h>
 #include <mach/clock-imx51_53.h>
 
@@ -251,7 +252,7 @@ int imx_clko_set_div(int num, int div)
 		ccm_writel(ccosr, MX5_CCM_CCOSR);
 		break;
 	default:
-		break;
+		return -ENODEV;
 	}
 
 	return div + 1;
-- 
1.7.3.4




More information about the barebox mailing list