summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/at91sam9260ek
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-01-05 14:36:38 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-01-06 09:42:30 +0100
commitbe11d8ef355c9d5d3a0add64ef9a5e3203ad6810 (patch)
treeeed8b7d32cfdd59b44378e1b154db95c9108df16 /arch/arm/boards/at91sam9260ek
parent6ac280d92e1edd7b8cceda08855d24243e911e22 (diff)
downloadbarebox-be11d8ef355c9d5d3a0add64ef9a5e3203ad6810.tar.gz
barebox-be11d8ef355c9d5d3a0add64ef9a5e3203ad6810.tar.xz
at91sam9260/9g20ek: add led support
use ds3 for heartbeat and ds5 for dfu Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/at91sam9260ek')
-rw-r--r--arch/arm/boards/at91sam9260ek/env/bin/init_board1
-rw-r--r--arch/arm/boards/at91sam9260ek/init.c32
2 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/boards/at91sam9260ek/env/bin/init_board b/arch/arm/boards/at91sam9260ek/env/bin/init_board
index 0a6baf722b..977430debd 100644
--- a/arch/arm/boards/at91sam9260ek/env/bin/init_board
+++ b/arch/arm/boards/at91sam9260ek/env/bin/init_board
@@ -46,4 +46,5 @@ echo ""
echo "Start DFU Mode"
echo ""
+led ds5 1
dfu ${dfu_config} -P ${product_id} -V ${vendor_id}
diff --git a/arch/arm/boards/at91sam9260ek/init.c b/arch/arm/boards/at91sam9260ek/init.c
index a11998a148..4bff35e90f 100644
--- a/arch/arm/boards/at91sam9260ek/init.c
+++ b/arch/arm/boards/at91sam9260ek/init.c
@@ -200,6 +200,37 @@ static struct at91_udc_data __initdata ek_udc_data = {
.pullup_pin = -EINVAL, /* pull-up driven by UDC */
};
+struct gpio_led leds[] = {
+ {
+ .gpio = AT91_PIN_PA6,
+ .active_low = 1,
+ .led = {
+ .name = "ds5",
+ },
+ }, {
+ .gpio = AT91_PIN_PA9,
+ .led = {
+ .name = "ds3",
+ },
+ },
+};
+
+static void __init ek_add_led(void)
+{
+ int i;
+
+#ifdef CONFIG_AT91_HAVE_2MMC
+ leds[0].gpio = AT91_PIN_PB8;
+ leds[1].gpio = AT91_PIN_PB9;
+#endif
+
+ for (i = 0; i < ARRAY_SIZE(leds); i++) {
+ at91_set_gpio_output(leds[i].gpio, leds[i].active_low);
+ led_gpio_register(&leds[i]);
+ }
+ led_set_trigger(LED_TRIGGER_HEARTBEAT, &leds[1].led);
+}
+
static int at91sam9260ek_mem_init(void)
{
at91_add_device_sdram(64 * 1024 * 1024);
@@ -227,6 +258,7 @@ static int at91sam9260ek_devices_init(void)
at91_add_device_udc(&ek_udc_data);
ek_usb_add_device_mci();
ek_add_device_buttons();
+ ek_add_led();
armlinux_set_bootparams((void *)(AT91_CHIPSELECT_1 + 0x100));
ek_set_board_type();