summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/eukrea_cpuimx35
diff options
context:
space:
mode:
authorEric Bénard <eric@eukrea.com>2012-05-18 09:41:41 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-05-18 11:25:05 +0200
commitc6a6451305185ab7af42db574ee91766590481d9 (patch)
tree05d489d0e9c3d110c10341e3c922e1f0c7094c0a /arch/arm/boards/eukrea_cpuimx35
parent2877ca103494b42788fc5c82fc38fea4668d2521 (diff)
downloadbarebox-c6a6451305185ab7af42db574ee91766590481d9.tar.gz
barebox-c6a6451305185ab7af42db574ee91766590481d9.tar.xz
eukrea_cpuimx25&35: use switch action to launch usbserial or dfu
Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/eukrea_cpuimx35')
-rw-r--r--arch/arm/boards/eukrea_cpuimx35/env/bin/init_board21
-rw-r--r--arch/arm/boards/eukrea_cpuimx35/eukrea_cpuimx35.c10
2 files changed, 29 insertions, 2 deletions
diff --git a/arch/arm/boards/eukrea_cpuimx35/env/bin/init_board b/arch/arm/boards/eukrea_cpuimx35/env/bin/init_board
index cb624e57aa..89fd9a90db 100644
--- a/arch/arm/boards/eukrea_cpuimx35/env/bin/init_board
+++ b/arch/arm/boards/eukrea_cpuimx35/env/bin/init_board
@@ -11,6 +11,27 @@ elif [ -f /env/logo.bmp.lzo ]; then
gpio_set_value 1 1
fi
+gpio_get_value 89
+if [ $? -eq 0 ]; then
+ gpio_set_value 93 0
+ usbserial
+ timeout -s -a 2
+ gpio_get_value 89
+ if [ $? -eq 0 ]; then
+ usbserial -d
+ dfu -V 0x1234 -P 0x1234 /dev/nand0.barebox.bb(barebox)sr,/dev/nand0.kernel.bb(kernel)r,/dev/nand0.root.bb(root)r
+ gpio_get_value 89
+ if [ $? -eq 0 ]; then
+ usbserial
+ autoboot_timeout=60
+ else
+ reset
+ fi
+ else
+ autoboot_timeout=28
+ fi
+fi
+
if [ -z $eth0.ethaddr ]; then
while [ -z $eth0.ethaddr ]; do
readline "no MAC address set for eth0. please enter the one found on your board: " eth0.ethaddr
diff --git a/arch/arm/boards/eukrea_cpuimx35/eukrea_cpuimx35.c b/arch/arm/boards/eukrea_cpuimx35/eukrea_cpuimx35.c
index 55fcc0cab4..4b52fb32ea 100644
--- a/arch/arm/boards/eukrea_cpuimx35/eukrea_cpuimx35.c
+++ b/arch/arm/boards/eukrea_cpuimx35/eukrea_cpuimx35.c
@@ -160,6 +160,12 @@ static int eukrea_cpuimx35_devices_init(void)
imx35_add_i2c0(NULL);
imx35_add_mmc0(NULL);
+ /* led default off */
+ gpio_direction_output(32 * 2 + 29, 1);
+
+ /* Switch : input */
+ gpio_direction_input(32 * 2 + 25);
+
#ifdef CONFIG_USB
imx35_usb_init();
add_generic_usb_ehci_device(DEVICE_ID_DYNAMIC, IMX_OTG_BASE + 0x400, NULL);
@@ -219,6 +225,8 @@ static iomux_v3_cfg_t eukrea_cpuimx35_pads[] = {
MX35_PAD_SD1_DATA1__ESDHC1_DAT1,
MX35_PAD_SD1_DATA2__ESDHC1_DAT2,
MX35_PAD_SD1_DATA3__ESDHC1_DAT3,
+
+ MX35_PAD_LD19__GPIO3_25,
};
static int eukrea_cpuimx35_console_init(void)
@@ -230,8 +238,6 @@ static int eukrea_cpuimx35_console_init(void)
gpio_direction_output(4, 0);
/* backlight default off */
gpio_direction_output(1, 0);
- /* led default off */
- gpio_direction_output(32 * 2 + 29, 1);
imx35_add_uart0();
return 0;