|
@@ -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) */
|
|
|
|
- MPP45_GPIO, /* GPIO extension (data 1) */
|
|
|
|
- MPP46_GPIO, /* GPIO extension (data 2) */
|
|
|
|
- MPP47_GPIO, /* GPIO extension (addr 0) */
|
|
|
|
- MPP48_GPIO, /* GPIO extension (addr 1) */
|
|
|
|
- MPP49_GPIO, /* GPIO extension (addr 2) */
|
|
|
|
|
|
+ MPP44_GPIO, /* CPLD GPIO bus (data 0) */
|
|
|
|
+ MPP45_GPIO, /* CPLD GPIO bus (data 1) */
|
|
|
|
+ MPP46_GPIO, /* CPLD GPIO bus (data 2) */
|
|
|
|
+ MPP47_GPIO, /* CPLD GPIO bus (addr 0) */
|
|
|
|
+ MPP48_GPIO, /* CPLD GPIO bus (addr 1) */
|
|
|
|
+ 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 */
|