summaryrefslogtreecommitdiff
path: root/board/keymile
diff options
context:
space:
mode:
authorStefan Bigler <stefan.bigler@keymile.com>2014-05-02 10:48:41 +0200
committerYork Sun <yorksun@freescale.com>2014-05-13 08:26:54 -0700
commita53e65d053401fff12740a8bbed8cb41670c268f (patch)
tree209e9e3dad2caa51dc2fe8a6467cd621a4bbad8f /board/keymile
parent5122dfae5d3cd68e0b6e5e08597df91ba79770aa (diff)
downloadu-boot-imx-a53e65d053401fff12740a8bbed8cb41670c268f.zip
u-boot-imx-a53e65d053401fff12740a8bbed8cb41670c268f.tar.gz
u-boot-imx-a53e65d053401fff12740a8bbed8cb41670c268f.tar.bz2
kmp204x: Add support for the unit LEDs
The unit LEDs are managed by the QRIO CPLD. This patch adds support for accessing these LEDs in the QRIO. The LEDs then are set to a correct boot state: - UNIT-LED is red - BOOT-LED is on. Signed-off-by: Stefan Bigler <stefan.bigler@keymile.com> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
Diffstat (limited to 'board/keymile')
-rw-r--r--board/keymile/kmp204x/kmp204x.c3
-rw-r--r--board/keymile/kmp204x/kmp204x.h1
-rw-r--r--board/keymile/kmp204x/qrio.c15
3 files changed, 19 insertions, 0 deletions
diff --git a/board/keymile/kmp204x/kmp204x.c b/board/keymile/kmp204x/kmp204x.c
index 95a19cd..5fceedd 100644
--- a/board/keymile/kmp204x/kmp204x.c
+++ b/board/keymile/kmp204x/kmp204x.c
@@ -113,6 +113,9 @@ int board_early_init_r(void)
if (ret)
printf("error triggering PCIe FPGA config\n");
+ /* enable the Unit LED (red) & Boot LED (on) */
+ qrio_set_leds();
+
return ret;
}
diff --git a/board/keymile/kmp204x/kmp204x.h b/board/keymile/kmp204x/kmp204x.h
index 0267596..34de27e 100644
--- a/board/keymile/kmp204x/kmp204x.h
+++ b/board/keymile/kmp204x/kmp204x.h
@@ -21,5 +21,6 @@ void qrio_gpio_direction_input(u8 port_off, u8 gpio_nr);
void qrio_prst(u8 bit, bool en, bool wden);
void qrio_prstcfg(u8 bit, u8 mode);
+void qrio_set_leds(void);
void pci_of_setup(void *blob, bd_t *bd);
diff --git a/board/keymile/kmp204x/qrio.c b/board/keymile/kmp204x/qrio.c
index 49f9aa2..86df2c7 100644
--- a/board/keymile/kmp204x/qrio.c
+++ b/board/keymile/kmp204x/qrio.c
@@ -144,3 +144,18 @@ void qrio_prstcfg(u8 bit, u8 mode)
out_be32(qrio_base + PRSTCFG_OFF, prstcfg);
}
+
+#define CTRLH_OFF 0x02
+#define CTRLH_WRL_BOOT 0x01
+#define CTRLH_WRL_UNITRUN 0x02
+
+void qrio_set_leds(void)
+{
+ u8 ctrlh;
+ void __iomem *qrio_base = (void *)CONFIG_SYS_QRIO_BASE;
+
+ /* set UNIT LED to RED and BOOT LED to ON */
+ ctrlh = in_8(qrio_base + CTRLH_OFF);
+ ctrlh |= (CTRLH_WRL_BOOT | CTRLH_WRL_UNITRUN);
+ out_8(qrio_base + CTRLH_OFF, ctrlh);
+}