9
0
Fork 0

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>
This commit is contained in:
Eric Bénard 2012-05-18 09:41:41 +02:00 committed by Sascha Hauer
parent 2877ca1034
commit c6a6451305
4 changed files with 57 additions and 2 deletions

View File

@ -9,6 +9,27 @@ elif [ -f /env/logo.bmp.lzo ]; then
fb0.enable=1
fi
gpio_get_value 82
if [ $? -eq 0 ]; then
gpio_set_value 83 0
usbserial
timeout -s -a 2
gpio_get_value 82
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 82
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

View File

@ -216,6 +216,8 @@ static iomux_v3_cfg_t eukrea_cpuimx25_pads[] = {
MX25_PAD_SD1_DATA3__SD1_DATA3,
/* LED */
MX25_PAD_POWER_FAIL__GPIO_3_19,
/* SWITCH */
MX25_PAD_VSTBY_ACK__GPIO_3_18,
};
static int eukrea_cpuimx25_devices_init(void)
@ -246,6 +248,9 @@ static int eukrea_cpuimx25_devices_init(void)
/* LED : default OFF */
gpio_direction_output(2 * 32 + 19, 1);
/* Switch : input */
gpio_direction_input(2 * 32 + 18);
imx25_add_fb(&eukrea_cpuimx25_fb_data);
imx25_add_i2c0(NULL);
@ -255,10 +260,12 @@ static int eukrea_cpuimx25_devices_init(void)
imx25_usb_init();
add_generic_usb_ehci_device(DEVICE_ID_DYNAMIC, IMX_OTG_BASE + 0x400, NULL);
#endif
#ifdef CONFIG_USB_GADGET
/* Workaround ENGcm09152 */
writel(readl(IMX_OTG_BASE + 0x608) | (1 << 23), IMX_OTG_BASE + 0x608);
add_generic_device("fsl-udc", DEVICE_ID_DYNAMIC, NULL, IMX_OTG_BASE, 0x200,
IORESOURCE_MEM, &usb_pdata);
#endif
armlinux_set_bootparams((void *)0x80000100);
armlinux_set_architecture(MACH_TYPE_EUKREA_CPUIMX25SD);

View File

@ -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

View File

@ -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;