
On 07/31/2014 11:36 AM, Stefan Agner wrote:
This adds board support for the Toradex Colibri T30 module.
Working functions:
- SD card boot
- eMMC environment and boot
- USB host/USB client (on the dual role port)
- Network (via ASIX USB)
arch/arm/Kconfig | 4 + arch/arm/dts/Makefile | 1 + arch/arm/dts/tegra30-colibri.dts | 84 +++++ arch/arm/include/asm/mach-types.h | 13 + board/toradex/colibri_t30/Makefile | 6 + board/toradex/colibri_t30/colibri_t30.c | 52 +++ .../colibri_t30/pinmux-config-colibri_t30.h | 360 +++++++++++++++++++++ include/configs/colibri_t30.h | 73 +++++
I think in latest u-boot/master, you'll also need to add configs/colibri_t30_defconfig.
diff --git a/arch/arm/dts/tegra30-colibri.dts b/arch/arm/dts/tegra30-colibri.dts
- /* EHCI instance 0: USB1_DP/N -> USBC_P/N */
- usb@7d000000 {
status = "okay";
dr_mode = "otg";
- };
For OTG support, VBUS needs to be able to be turned on/off. Should this port be host-mode, or a VBUS GPIO defined?
diff --git a/board/toradex/colibri_t30/colibri_t30.c b/board/toradex/colibri_t30/colibri_t30.c
+void pin_mux_usb(void) +{
- /* Enable LAN_VBUS */
- gpio_request(GPIO_PDD2, NULL);
- gpio_direction_output(GPIO_PDD2, 1);
- /* Reset ASIX using LAN_RESET */
- gpio_request(GPIO_PDD0, NULL);
- gpio_direction_output(GPIO_PDD0, 0);
- udelay(5);
- gpio_set_value(GPIO_PDD0, 1);
+}
It might be nice to remove the blank lines around the udelay() call; I initially didn't notice that GOPIO_PDD0 was manipulated by the code both before and after the udelay() and hence there was already a comment saying what GPIO_PDD0 controlled. Nestling the lines together would make this more obvious.
diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h
+#define CONFIG_I2C_MULTI_BUS +#define CONFIG_SYS_MAX_I2C_BUS TEGRA_I2C_NUM_CONTROLLERS
Are those needed? They aren't defined in e.g. the Beaver config header.
+#define BOARD_EXTRA_ENV_SETTINGS \
- "board_name=colibri-eval-v3\0" \
- "fdtfile=tegra30-colibri-eval-v3.dtb\0"
It'd be nice to name the board the same in U-Boot as the kernel DT filename. Then you wouldn't need to manually override the default values here.
+#include "tegra-common-ums.h"
Did you test this? I mostly developed the USB device mode support on Tegra124. While at some point I did test it on Beaver/Tegra30, it was early on and not very extensive. I'd love to hear that it works well for you too:-)
(BTW, I sent a patch to rename that file to tegra-common-usb-gadget.h, since I added DFU support too, so depending on what order TomW applies our patches, one of us will need to rebase)