diff --git a/arch/arm/boards/eag-mx25/board.c b/arch/arm/boards/eag-mx25/board.c index 6c1117b..086d61b 100644 --- a/arch/arm/boards/eag-mx25/board.c +++ b/arch/arm/boards/eag-mx25/board.c @@ -188,6 +188,26 @@ static void imx25_eag_ecu01_fb_register(void) imx25_add_fb(&imx25_eag_ecu01_fb_data); } +static void imx25_eag_ecu01_motor_bridge(void) +{ + const struct gpio motorbridge_gpios[] = { + /* first init { enable_A, enable_B }, then { clockwise, counter_clockwise } */ + { IMX_GPIO_NR(1, 10), GPIOF_OUT_INIT_LOW, "motorbridge1/enable_A" }, + { IMX_GPIO_NR(2, 22), GPIOF_OUT_INIT_LOW, "motorbridge1/enable_B" }, + { IMX_GPIO_NR(2, 21), GPIOF_OUT_INIT_LOW, "motorbridge1/clockwise" }, + { IMX_GPIO_NR(1, 8), GPIOF_OUT_INIT_LOW, "motorbridge1/counter_clockwise" }, + + { IMX_GPIO_NR(4, 29), GPIOF_OUT_INIT_LOW, "motorbridge2/enable_A" }, + { IMX_GPIO_NR(3, 15), GPIOF_OUT_INIT_LOW, "motorbridge2/enable_B" }, + { IMX_GPIO_NR(1, 9), GPIOF_OUT_INIT_LOW, "motorbridge2/clockwise" }, + { IMX_GPIO_NR(1, 7), GPIOF_OUT_INIT_LOW, "motorbridge2/counter_clockwise" }, + }; + + (void)gpio_request_array(motorbridge_gpios, ARRAY_SIZE(motorbridge_gpios)); + + dputs(2, "#### imx25_eag_ecu01_motor_bridge\n"); +} + static int imx25_eag_init(void) { if (!of_machine_is_compatible("eckelmann,imx25")) @@ -204,6 +224,7 @@ static int imx25_eag_init(void) } else if (of_machine_is_compatible("eckelmann,ecu01")) { barebox_set_hostname("ecu01"); + imx25_eag_ecu01_motor_bridge(); imx25_eag_ecu01_fb_register(); armlinux_set_architecture(MACH_TYPE_EAG_ECU01); }