mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
net2big_v2: initialize LEDs at startup
This patch allows to configure the net2big_v2 LEDs at startup (through the GPIO extension bus). The front blue LED is enabled and the SATA rear LEDs are configured to blink in relation with the SATA activity. Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
This commit is contained in:
parent
d5cc3f5241
commit
7737c99460
2 changed files with 96 additions and 7 deletions
|
@ -28,6 +28,9 @@ endif
|
||||||
LIB = $(obj)lib$(BOARD).o
|
LIB = $(obj)lib$(BOARD).o
|
||||||
|
|
||||||
COBJS := $(BOARD).o ../common/common.o
|
COBJS := $(BOARD).o ../common/common.o
|
||||||
|
ifneq ($(and $(CONFIG_KIRKWOOD_GPIO),$(CONFIG_NET2BIG_V2)),)
|
||||||
|
COBJS += ../common/cpld-gpio-bus.o
|
||||||
|
endif
|
||||||
|
|
||||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||||
OBJS := $(addprefix $(obj),$(COBJS))
|
OBJS := $(addprefix $(obj),$(COBJS))
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
#include "net2big_v2.h"
|
#include "net2big_v2.h"
|
||||||
#include "../common/common.h"
|
#include "../common/common.h"
|
||||||
|
#include "../common/cpld-gpio-bus.h"
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
@ -61,18 +62,18 @@ int board_early_init_f(void)
|
||||||
MPP24_GPIO, /* USB mode select */
|
MPP24_GPIO, /* USB mode select */
|
||||||
MPP26_GPIO, /* USB device vbus */
|
MPP26_GPIO, /* USB device vbus */
|
||||||
MPP28_GPIO, /* USB enable host vbus */
|
MPP28_GPIO, /* USB enable host vbus */
|
||||||
MPP29_GPIO, /* GPIO extension ALE */
|
MPP29_GPIO, /* CPLD GPIO bus ALE */
|
||||||
MPP34_GPIO, /* Rear Push button 0=on 1=off */
|
MPP34_GPIO, /* Rear Push button 0=on 1=off */
|
||||||
MPP35_GPIO, /* Inhibit switch power-off */
|
MPP35_GPIO, /* Inhibit switch power-off */
|
||||||
MPP36_GPIO, /* SATA HDD1 presence */
|
MPP36_GPIO, /* SATA HDD1 presence */
|
||||||
MPP37_GPIO, /* SATA HDD2 presence */
|
MPP37_GPIO, /* SATA HDD2 presence */
|
||||||
MPP40_GPIO, /* eSATA presence */
|
MPP40_GPIO, /* eSATA presence */
|
||||||
MPP44_GPIO, /* GPIO extension (data 0) */
|
MPP44_GPIO, /* CPLD GPIO bus (data 0) */
|
||||||
MPP45_GPIO, /* GPIO extension (data 1) */
|
MPP45_GPIO, /* CPLD GPIO bus (data 1) */
|
||||||
MPP46_GPIO, /* GPIO extension (data 2) */
|
MPP46_GPIO, /* CPLD GPIO bus (data 2) */
|
||||||
MPP47_GPIO, /* GPIO extension (addr 0) */
|
MPP47_GPIO, /* CPLD GPIO bus (addr 0) */
|
||||||
MPP48_GPIO, /* GPIO extension (addr 1) */
|
MPP48_GPIO, /* CPLD GPIO bus (addr 1) */
|
||||||
MPP49_GPIO, /* GPIO extension (addr 2) */
|
MPP49_GPIO, /* CPLD GPIO bus (addr 2) */
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -143,6 +144,89 @@ err:
|
||||||
static void init_fan(void) {}
|
static void init_fan(void) {}
|
||||||
#endif /* CONFIG_CMD_I2C && CONFIG_SYS_I2C_G762_ADDR */
|
#endif /* CONFIG_CMD_I2C && CONFIG_SYS_I2C_G762_ADDR */
|
||||||
|
|
||||||
|
#if defined(CONFIG_NET2BIG_V2) && defined(CONFIG_KIRKWOOD_GPIO)
|
||||||
|
/*
|
||||||
|
* CPLD GPIO bus:
|
||||||
|
*
|
||||||
|
* - address register : bit [0-2] -> GPIO [47-49]
|
||||||
|
* - data register : bit [0-2] -> GPIO [44-46]
|
||||||
|
* - enable register : GPIO 29
|
||||||
|
*/
|
||||||
|
static unsigned cpld_gpio_bus_addr[] = { 47, 48, 49 };
|
||||||
|
static unsigned cpld_gpio_bus_data[] = { 44, 45, 46 };
|
||||||
|
|
||||||
|
static struct cpld_gpio_bus cpld_gpio_bus = {
|
||||||
|
.addr = cpld_gpio_bus_addr,
|
||||||
|
.num_addr = ARRAY_SIZE(cpld_gpio_bus_addr),
|
||||||
|
.data = cpld_gpio_bus_data,
|
||||||
|
.num_data = ARRAY_SIZE(cpld_gpio_bus_data),
|
||||||
|
.enable = 29,
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LEDs configuration:
|
||||||
|
*
|
||||||
|
* The LEDs are controlled by a CPLD and can be configured through
|
||||||
|
* the CPLD GPIO bus.
|
||||||
|
*
|
||||||
|
* Address register selection:
|
||||||
|
*
|
||||||
|
* addr | register
|
||||||
|
* ----------------------------
|
||||||
|
* 0 | front LED
|
||||||
|
* 1 | front LED brightness
|
||||||
|
* 2 | SATA LED brightness
|
||||||
|
* 3 | SATA0 LED
|
||||||
|
* 4 | SATA1 LED
|
||||||
|
* 5 | SATA2 LED
|
||||||
|
* 6 | SATA3 LED
|
||||||
|
* 7 | SATA4 LED
|
||||||
|
*
|
||||||
|
* Data register configuration:
|
||||||
|
*
|
||||||
|
* data | LED brightness
|
||||||
|
* -------------------------------------------------
|
||||||
|
* 0 | min (off)
|
||||||
|
* - | -
|
||||||
|
* 7 | max
|
||||||
|
*
|
||||||
|
* data | front LED mode
|
||||||
|
* -------------------------------------------------
|
||||||
|
* 0 | fix off
|
||||||
|
* 1 | fix blue on
|
||||||
|
* 2 | fix red on
|
||||||
|
* 3 | blink blue on=1 sec and blue off=1 sec
|
||||||
|
* 4 | blink red on=1 sec and red off=1 sec
|
||||||
|
* 5 | blink blue on=2.5 sec and red on=0.5 sec
|
||||||
|
* 6 | blink blue on=1 sec and red on=1 sec
|
||||||
|
* 7 | blink blue on=0.5 sec and blue off=2.5 sec
|
||||||
|
*
|
||||||
|
* data | SATA LED mode
|
||||||
|
* -------------------------------------------------
|
||||||
|
* 0 | fix off
|
||||||
|
* 1 | SATA activity blink
|
||||||
|
* 2 | fix red on
|
||||||
|
* 3 | blink blue on=1 sec and blue off=1 sec
|
||||||
|
* 4 | blink red on=1 sec and red off=1 sec
|
||||||
|
* 5 | blink blue on=2.5 sec and red on=0.5 sec
|
||||||
|
* 6 | blink blue on=1 sec and red on=1 sec
|
||||||
|
* 7 | fix blue on
|
||||||
|
*/
|
||||||
|
static void init_leds(void)
|
||||||
|
{
|
||||||
|
/* Enable the front blue LED */
|
||||||
|
cpld_gpio_bus_write(&cpld_gpio_bus, 0, 1);
|
||||||
|
cpld_gpio_bus_write(&cpld_gpio_bus, 1, 3);
|
||||||
|
|
||||||
|
/* Configure SATA LEDs to blink in relation with the SATA activity */
|
||||||
|
cpld_gpio_bus_write(&cpld_gpio_bus, 3, 1);
|
||||||
|
cpld_gpio_bus_write(&cpld_gpio_bus, 4, 1);
|
||||||
|
cpld_gpio_bus_write(&cpld_gpio_bus, 2, 3);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static void init_leds(void) {}
|
||||||
|
#endif /* CONFIG_NET2BIG_V2 && CONFIG_KIRKWOOD_GPIO */
|
||||||
|
|
||||||
int misc_init_r(void)
|
int misc_init_r(void)
|
||||||
{
|
{
|
||||||
init_fan();
|
init_fan();
|
||||||
|
@ -153,6 +237,8 @@ int misc_init_r(void)
|
||||||
eth_setenv_enetaddr("ethaddr", mac);
|
eth_setenv_enetaddr("ethaddr", mac);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
init_leds();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_MISC_INIT_R */
|
#endif /* CONFIG_MISC_INIT_R */
|
||||||
|
|
Loading…
Reference in a new issue