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

Signed-off-by: Alexander Shiyan <shc_w...@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


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to