Skip to contentSkip to conversation

BeagleBoard: Added LED driver

PATCH New Jason Kridner 4 participants 4 messages Mar 1, 2011 – Apr 20, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 BeagleBoard: Added LED driver

Added LED driver using status_led. USR0 is set to monitor the boot status. USR1 is set to be the green LED.

Included adding configuration and command to the default configuration.

---
 board/ti/beagle/Makefile       |    4 +-
 board/ti/beagle/beagle.c       |    7 +++
 board/ti/beagle/led.c          |   91 ++++++++++++++++++++++++++++++++++++++++
 include/configs/omap3_beagle.h |   13 ++++++
 4 files changed, 114 insertions(+), 1 deletions(-)
 create mode 100644 board/ti/beagle/led.c
board/ti/beagle/Makefile +3 -1
index 3b4aaac..d9f445f 100644
@@ -25,8 +25,10 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(BOARD).o
 
-COBJS	:= beagle.o
+COBJS-y	:= $(BOARD).o
+COBJS-$(CONFIG_STATUS_LED) += led.o
 
+COBJS	:= $(sort $(COBJS-y))
 SRCS	:= $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
 
board/ti/beagle/beagle.c +7 -0
index 93c452e..dd7b6b5 100644
@@ -30,6 +30,9 @@
  * MA 02111-1307 USA
  */
 #include <common.h>
+#ifdef CONFIG_STATUS_LED
+#include <status_led.h>
+#endif
 #include <twl4030.h>
 #include <asm/io.h>
 #include <asm/arch/mmc_host_def.h>
@@ -78,6 +81,10 @@ int board_init(void)
 	/* boot param addr */
 	gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
 
+#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
+	status_led_set (STATUS_LED_BOOT, STATUS_LED_ON);
+#endif
+
 	return 0;
 }
 
board/ti/beagle/led.c new file +91 -0

91 lines not on this page · raw message

include/configs/omap3_beagle.h +13 -0
index 56363f7..6527cd9 100644
@@ -108,6 +108,18 @@
 #define CONFIG_OMAP_HSMMC		1
 #define CONFIG_DOS_PARTITION		1
 
+/* Status LED */
+#define CONFIG_STATUS_LED		1
+#define CONFIG_BOARD_SPECIFIC_LED	1
+#define STATUS_LED_BIT			0x01
+#define STATUS_LED_STATE		STATUS_LED_ON
+#define STATUS_LED_PERIOD		(CONFIG_SYS_HZ / 2)
+#define STATUS_LED_BIT1			0x02
+#define STATUS_LED_STATE1		STATUS_LED_ON
+#define STATUS_LED_PERIOD1		(CONFIG_SYS_HZ / 2)
+#define STATUS_LED_BOOT			STATUS_LED_BIT
+#define STATUS_LED_GREEN		STATUS_LED_BIT1
+
 /* DDR - I use Micron DDR */
 #define CONFIG_OMAP3_MICRON_DDR		1
 
@@ -138,6 +150,7 @@
 #define CONFIG_CMD_I2C		/* I2C serial bus support	*/
 #define CONFIG_CMD_MMC		/* MMC support			*/
 #define CONFIG_CMD_NAND		/* NAND support			*/
+#define CONFIG_CMD_LED		/* LED support			*/
 
 #undef CONFIG_CMD_FLASH		/* flinfo, erase, protect	*/
 #undef CONFIG_CMD_FPGA		/* FPGA configuration Support	*/
Signature · 1 line
1.5.6.4
#1 lore raw

PATCH 1/1 BeagleBoard: Added LED driver

Hi jason,

Quoted 6 lines · Jason Kridner

Added LED driver using status_led. USR0 is set to monitor the boot status. USR1 is set to be the green LED.

Included adding configuration and command to the default configuration.

Please consider generic gpio api and drivers/misc/gpio_led.c.

Regard,
Thomas

#2 lore raw

PATCH 1/1 BeagleBoard: Added LED driver

In reply to Jason Kridner
Quoted 9 lines

Added LED driver using status_led. USR0 is set to monitor the boot status. USR1 is set to be the green LED.

Included adding configuration and command to the default configuration.

Pushed to u-boot-ti

#3 lore raw

PATCH 1/1 BeagleBoard: Added LED driver

In reply to Jason Kridner

Dear Jason Kridner,

Quoted 6 lines · In message <[email protected]> you…

Added LED driver using status_led. USR0 is set to monitor the boot status. USR1 is set to be the green LED.

Included adding configuration and command to the default configuration.

...

Quoted 2 lines
board/ti/beagle/led.c new file +2 -0
+#ifdef STATUS_LED_GREEN
+void green_LED_off (void)

...

Quoted 1 line

+void green_LED_on (void)

...

We doin't allow CamelCase identifiers.

board/ti/beagle/led.c line 76

Quoted 3 lines
board/ti/beagle/led.c new file +3 -0
+		if (!omap_request_gpio(BEAGLE_LED_USR0)) {
+			omap_set_gpio_direction(BEAGLE_LED_USR0, 0);
+			omap_set_gpio_dataout(BEAGLE_LED_USR0, state);

Should you not set dataout _before_ direction? As is, you may drive the wrong output value for a short time.

board/ti/beagle/led.c line 85

Quoted 3 lines
board/ti/beagle/led.c new file +3 -0
+		if (!omap_request_gpio(BEAGLE_LED_USR1)) {
+			omap_set_gpio_direction(BEAGLE_LED_USR1, 0);
+			omap_set_gpio_dataout(BEAGLE_LED_USR1, state);

Ditto.