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)
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to