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. Signed-off-by: Jason Kridner <jkridner@beagleboard.org> Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
This commit is contained in:
parent
b633f66f02
commit
70d8c9446f
@ -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))
|
||||
|
||||
|
@ -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>
|
||||
@ -74,6 +77,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;
|
||||
}
|
||||
|
||||
|
91
board/ti/beagle/led.c
Normal file
91
board/ti/beagle/led.c
Normal file
@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (c) 2010 Texas Instruments, Inc.
|
||||
* Jason Kridner <jkridner@beagleboard.org>
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#include <common.h>
|
||||
#include <status_led.h>
|
||||
#include <asm/arch/cpu.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/gpio.h>
|
||||
|
||||
static unsigned int saved_state[2] = {STATUS_LED_OFF, STATUS_LED_OFF};
|
||||
|
||||
/* GPIO pins for the LEDs */
|
||||
#define BEAGLE_LED_USR0 149
|
||||
#define BEAGLE_LED_USR1 150
|
||||
|
||||
#ifdef STATUS_LED_GREEN
|
||||
void green_LED_off (void)
|
||||
{
|
||||
__led_set (STATUS_LED_GREEN, 0);
|
||||
}
|
||||
|
||||
void green_LED_on (void)
|
||||
{
|
||||
__led_set (STATUS_LED_GREEN, 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
void __led_init (led_id_t mask, int state)
|
||||
{
|
||||
__led_set (mask, state);
|
||||
}
|
||||
|
||||
void __led_toggle (led_id_t mask)
|
||||
{
|
||||
#ifdef STATUS_LED_BIT
|
||||
if (STATUS_LED_BIT & mask) {
|
||||
if (STATUS_LED_ON == saved_state[0])
|
||||
__led_set(STATUS_LED_BIT, 0);
|
||||
else
|
||||
__led_set(STATUS_LED_BIT, 1);
|
||||
}
|
||||
#endif
|
||||
#ifdef STATUS_LED_BIT1
|
||||
if (STATUS_LED_BIT1 & mask) {
|
||||
if (STATUS_LED_ON == saved_state[1])
|
||||
__led_set(STATUS_LED_BIT1, 0);
|
||||
else
|
||||
__led_set(STATUS_LED_BIT1, 1);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void __led_set (led_id_t mask, int state)
|
||||
{
|
||||
#ifdef STATUS_LED_BIT
|
||||
if (STATUS_LED_BIT & mask) {
|
||||
if (!omap_request_gpio(BEAGLE_LED_USR0)) {
|
||||
omap_set_gpio_direction(BEAGLE_LED_USR0, 0);
|
||||
omap_set_gpio_dataout(BEAGLE_LED_USR0, state);
|
||||
}
|
||||
saved_state[0] = state;
|
||||
}
|
||||
#endif
|
||||
#ifdef STATUS_LED_BIT1
|
||||
if (STATUS_LED_BIT1 & mask) {
|
||||
if (!omap_request_gpio(BEAGLE_LED_USR1)) {
|
||||
omap_set_gpio_direction(BEAGLE_LED_USR1, 0);
|
||||
omap_set_gpio_dataout(BEAGLE_LED_USR1, state);
|
||||
}
|
||||
saved_state[1] = state;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user