[U-Boot] [PATCH] ARM: tegra: add Colibri T30 board support
Stephen Warren
swarren at wwwdotorg.org
Thu Jul 31 20:21:02 CEST 2014
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 at 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)
More information about the U-Boot
mailing list