From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas Stach Date: Fri, 02 Nov 2012 00:17:43 +0100 Subject: [U-Boot] [PATCH] ARM: tegra: TrimSlice: add support for USB1 port In-Reply-To: <1351808077-11932-1-git-send-email-swarren@wwwdotorg.org> References: <1351808077-11932-1-git-send-email-swarren@wwwdotorg.org> Message-ID: <1351811863.19243.5.camel@tellur> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Stephen, Am Donnerstag, den 01.11.2012, 16:14 -0600 schrieb Stephen Warren: > From: Stephen Warren > > TrimSlice's USB1 port has two purposes; it either acts as a device port > hosting Tegra's USB recovery protocol, or acts as a host port connected > to the internal USB->SATA bridge chip, which may in turn be connected to > an SSD or HDD. Add the appropriate device tree and board configuration > options to enable this port as a host port, and route the port to the > SATA bridge using the VBUS GPIO. > Hm, I don't really like to abuse the VBUS GPIO for this function. As the GPIO controlled routing is more a sort of pinmux can't you just add the GPIO enable to pin_mux_usb()? > Signed-off-by: Stephen Warren > --- > board/compulab/dts/tegra20-trimslice.dts | 3 ++- > board/compulab/trimslice/trimslice.c | 8 ++++++++ > include/configs/trimslice.h | 1 + > 3 files changed, 11 insertions(+), 1 deletions(-) > > diff --git a/board/compulab/dts/tegra20-trimslice.dts b/board/compulab/dts/tegra20-trimslice.dts > index db79e77..4450674 100644 > --- a/board/compulab/dts/tegra20-trimslice.dts > +++ b/board/compulab/dts/tegra20-trimslice.dts > @@ -8,6 +8,7 @@ > > aliases { > usb0 = "/usb at c5008000"; > + usb1 = "/usb at c5000000"; > }; > > memory { > @@ -48,7 +49,7 @@ > }; > > usb at c5000000 { > - status = "disabled"; > + nvidia,vbus-gpio = <&gpio 170 0>; /* PV2 */ > }; > > usb at c5004000 { > diff --git a/board/compulab/trimslice/trimslice.c b/board/compulab/trimslice/trimslice.c > index 9ef66fd..8f4dd09 100644 > --- a/board/compulab/trimslice/trimslice.c > +++ b/board/compulab/trimslice/trimslice.c > @@ -34,6 +34,14 @@ > #include > #endif > > +void pin_mux_usb(void) > +{ > + /* > + * USB1 internal/external mux GPIO, which masquerades as a VBUS GPIO > + * in the current device tree. > + */ > + pinmux_tristate_disable(PINGRP_UAC); > +} > > void pin_mux_spi(void) > { > diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h > index eeb0dbe..165bc73 100644 > --- a/include/configs/trimslice.h > +++ b/include/configs/trimslice.h > @@ -80,6 +80,7 @@ > #define CONFIG_ENV_OFFSET (512 * 1024) > > /* USB Host support */ > +#define CONFIG_USB_MAX_CONTROLLER_COUNT 3 > #define CONFIG_USB_EHCI > #define CONFIG_USB_EHCI_TEGRA > #define CONFIG_USB_STORAGE