]> git.sur5r.net Git - u-boot/commitdiff
Add coloured led interface for ARM boards.
authorPeter Pearse <peter.pearse@arm.com>
Tue, 4 Sep 2007 15:18:38 +0000 (16:18 +0100)
committerPeter Pearse <peter.pearse@arm.com>
Tue, 4 Sep 2007 15:18:38 +0000 (16:18 +0100)
Use it in cpu/arm920t/start.S to indicate U-Boot code has been entered.

board/at91rm9200dk/led.h [deleted file]
cpu/arm920t/start.S [changed mode: 0644->0755]
include/asm-arm/led.h [new file with mode: 0755]
lib_arm/board.c [changed mode: 0644->0755]

diff --git a/board/at91rm9200dk/led.h b/board/at91rm9200dk/led.h
deleted file mode 100644 (file)
index 57c2b4a..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * (C) Copyright 2006
- * Atmel Nordic AB <www.atmel.com>
- * Ulf Samuelsson <ulf@atmel.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __LED_H
-#define __LED_H
-
-#ifndef        __ASSEMBLY__
-extern void    LED_init (void);
-extern void    red_LED_on(void);
-extern void    red_LED_off(void);
-extern void    green_LED_on(void);
-extern void    green_LED_off(void);
-extern void    yellow_LED_on(void);
-extern void    yellow_LED_off(void);
-#else
-       .extern LED_init
-       .extern red_LED_on
-       .extern red_LED_off
-       .extern yellow_LED_on
-       .extern yellow_LED_off
-       .extern green_LED_on
-       .extern green_LED_off
-#endif
-#endif
old mode 100644 (file)
new mode 100755 (executable)
index b9c364b..1bc6099
@@ -27,9 +27,7 @@
 
 #include <config.h>
 #include <version.h>
-#if    defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) || defined(CONFIG_AT91RM9200DF)
-#include       <led.h>
-#endif
+#include <asm/led.h>
 
 /*
  *************************************************************************
@@ -117,13 +115,13 @@ reset:
        bic     r0,r0,#0x1f
        orr     r0,r0,#0xd3
        msr     cpsr,r0
-
-#if    CONFIG_AT91RM9200
-#if    defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) || defined(CONFIG_AT91RM9200DF)
-       bl LED_init
+       /* 
+        * if board has a red led use it to show U-Boot is running
+        */
+       bl coloured_LED_init
        bl red_LED_on
-#endif
 
+#ifdef CONFIG_AT91RM9200
 #ifdef CONFIG_BOOTBINFUNC
 /* code based on entry.S from ATMEL */
 #define AT91C_BASE_CKGR 0xFFFFFC20
diff --git a/include/asm-arm/led.h b/include/asm-arm/led.h
new file mode 100755 (executable)
index 0000000..f78a4b1
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * (C) Copyright 2006
+ * Atmel Nordic AB <www.atmel.com>
+ * Ulf Samuelsson <ulf@atmel.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __LED_H
+#define __LED_H
+
+#ifndef        __ASSEMBLY__
+extern void    coloured_LED_init (void);
+extern void    red_LED_on(void);
+extern void    red_LED_off(void);
+extern void    green_LED_on(void);
+extern void    green_LED_off(void);
+extern void    yellow_LED_on(void);
+extern void    yellow_LED_off(void);
+#else
+       .extern LED_init
+       .extern red_LED_on
+       .extern red_LED_off
+       .extern yellow_LED_on
+       .extern yellow_LED_off
+       .extern green_LED_on
+       .extern green_LED_off
+#endif
+#endif
old mode 100644 (file)
new mode 100755 (executable)
index d37e5da..6b49925
@@ -111,6 +111,30 @@ void *sbrk (ptrdiff_t increment)
        return ((void *) old);
 }
 
+/************************************************************************
+ * Coloured LED functionality
+ ************************************************************************
+ * May be supplied by boards if desired
+ */
+void inline __coloured_LED_init (void) {}
+void inline coloured_LED_init (void) __attribute__((weak, alias("__coloured_LED_init"))); 
+void inline __red_LED_on (void) {}
+void inline red_LED_on (void) __attribute__((weak, alias("__red_LED_on")));
+void inline __red_LED_off(void) {}
+void inline red_LED_off(void)       __attribute__((weak, alias("__red_LED_off"))); 
+void inline __green_LED_on(void) {}
+void inline green_LED_on(void) __attribute__((weak, alias("__green_LED_on"))); 
+void inline __green_LED_off(void) {}
+void inline green_LED_off(void)__attribute__((weak, alias("__green_LED_off"))); 
+void inline __yellow_LED_on(void) {}
+void inline yellow_LED_on(void)__attribute__((weak, alias("__yellow_LED_on"))); 
+void inline __yellow_LED_off(void) {}
+void inline yellow_LED_off(void)__attribute__((weak, alias("__yellow_LED_off"))); 
+
+
+
+
+
 /************************************************************************
  * Init Utilities                                                      *
  ************************************************************************