[U-Boot] [PATCH 1/2] tegra: add ULPI on USB2 funcmux entry

This is needed as a prerequisite for Tegra USB ULPI support within U-Boot.
Signed-off-by: Lucas Stach dev@lynxeye.de Acked-by: Stephen Warren swarren@wwwdotorg.org CC: Stephen Warren swarren@wwwdotorg.org CC: Tom Warren twarren@nvidia.com --- arch/arm/cpu/armv7/tegra2/funcmux.c | 13 ++++++++++++- arch/arm/include/asm/arch-tegra2/funcmux.h | 3 +++ 2 Dateien geändert, 15 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/arch/arm/cpu/armv7/tegra2/funcmux.c b/arch/arm/cpu/armv7/tegra2/funcmux.c index 820ba4e9..455d010 100644 --- a/arch/arm/cpu/armv7/tegra2/funcmux.c +++ b/arch/arm/cpu/armv7/tegra2/funcmux.c @@ -209,9 +209,20 @@ int funcmux_select(enum periph_id id, int config) pinmux_set_func(grp[i], PMUX_FUNC_KBC); pinmux_set_pullupdown(grp[i], PMUX_PULL_UP); } + } + break;
- break; + case PERIPH_ID_USB2: + if (config == FUNCMUX_USB2_ULPI) { + pinmux_set_func(PINGRP_UAA, PMUX_FUNC_ULPI); + pinmux_set_func(PINGRP_UAB, PMUX_FUNC_ULPI); + pinmux_set_func(PINGRP_UDA, PMUX_FUNC_ULPI); + + pinmux_tristate_disable(PINGRP_UAA); + pinmux_tristate_disable(PINGRP_UAB); + pinmux_tristate_disable(PINGRP_UDA); } + break;
default: debug("%s: invalid periph_id %d", __func__, id); diff --git a/arch/arm/include/asm/arch-tegra2/funcmux.h b/arch/arm/include/asm/arch-tegra2/funcmux.h index b16c496..3cbc7d2 100644 --- a/arch/arm/include/asm/arch-tegra2/funcmux.h +++ b/arch/arm/include/asm/arch-tegra2/funcmux.h @@ -51,6 +51,9 @@ enum { FUNCMUX_SDMMC4_ATC_ATD_8BIT = 0, FUNCMUX_SDMMC4_ATB_GMA_4_BIT, FUNCMUX_SDMMC4_ATB_GMA_GME_8_BIT, + + /* USB configs */ + FUNCMUX_USB2_ULPI = 0, };
/**

loop_count runs down from 10000, so the correct condition to error out is ==0.
Signed-off-by: Lucas Stach dev@lynxeye.de Acked-by: Stephen Warren swarren@wwwdotorg.org CC: Stephen Warren swarren@wwwdotorg.org CC: Tom Warren twarren.nvidia@gmail.com --- arch/arm/cpu/armv7/tegra2/usb.c | 2 +- 1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/arch/arm/cpu/armv7/tegra2/usb.c b/arch/arm/cpu/armv7/tegra2/usb.c index c80de7f..5f2b243 100644 --- a/arch/arm/cpu/armv7/tegra2/usb.c +++ b/arch/arm/cpu/armv7/tegra2/usb.c @@ -290,7 +290,7 @@ static int init_usb_controller(struct fdt_usb *config, break; udelay(1); } - if (loop_count == 100000) + if (!loop_count) return -1;
return 0;

Dear Lucas Stach,
loop_count runs down from 10000, so the correct condition to error out is ==0.
Signed-off-by: Lucas Stach dev@lynxeye.de Acked-by: Stephen Warren swarren@wwwdotorg.org CC: Stephen Warren swarren@wwwdotorg.org CC: Tom Warren twarren.nvidia@gmail.com
arch/arm/cpu/armv7/tegra2/usb.c | 2 +- 1 Datei geändert, 1 Zeile hinzugefügt(+), 1 Zeile entfernt(-)
diff --git a/arch/arm/cpu/armv7/tegra2/usb.c b/arch/arm/cpu/armv7/tegra2/usb.c index c80de7f..5f2b243 100644 --- a/arch/arm/cpu/armv7/tegra2/usb.c +++ b/arch/arm/cpu/armv7/tegra2/usb.c
Why isn't this file in drivers/usb/ ?
@@ -290,7 +290,7 @@ static int init_usb_controller(struct fdt_usb *config, break; udelay(1); }
- if (loop_count == 100000)
if (!loop_count) return -1;
return 0;
Best regards, Marek Vasut

On 05/31/2012 05:51 AM, Lucas Stach wrote:
loop_count runs down from 10000, so the correct condition to error out is ==0.
Signed-off-by: Lucas Stach dev@lynxeye.de Acked-by: Stephen Warren swarren@wwwdotorg.org CC: Stephen Warren swarren@wwwdotorg.org CC: Tom Warren twarren.nvidia@gmail.com
Tested-by: Stephen Warren swarren@wwwdotorg.org
On Harmony, repeated invocations of "usb start 0 ; dhcp ${loadaddr} zImage.uimg" appeared to work OK, with this patch applied to u-boot-tegra.git master branch.
participants (3)
-
Lucas Stach
-
Marek Vasut
-
Stephen Warren