[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