[U-Boot] [PATCH 7/8] smdk5420: Correct the vbus gpio configuration for USB controller

Marek Vasut
2014-01-07T09:15:31Z

On Tuesday, January 07, 2014 at 10:03:01 AM, Vivek Gautam wrote:
> On Tue, Jan 7, 2014 at 1:19 PM, Marek Vasut <marex@denx.de> wrote:
> > On Tuesday, January 07, 2014 at 07:37:46 AM, Vivek Gautam wrote:
> >> Hi Marek,
> >>
> >> On Mon, Jan 6, 2014 at 9:22 PM, Marek Vasut <marex@denx.de> wrote:
> >> > On Monday, January 06, 2014 at 10:29:42 AM, Vivek Gautam wrote:
> >> >> On smdk5420 two availbale XHCI controllers require VBUS GPIO
> >> >> to be configured, the EHCI however doesn't have any such VBUS
> >> >> GPIO. So correcting the available board_usb_vbus_init() function
> >> >> to the needs.
> >> >>
> >> >> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> >> >> ---
> >> >>
> >> >> board/samsung/smdk5420/smdk5420.c | 11 ++++++-----
> >> >> 1 file changed, 6 insertions(+), 5 deletions(-)
> >> >>
> >> >> diff --git a/board/samsung/smdk5420/smdk5420.c
> >> >> b/board/samsung/smdk5420/smdk5420.c index 3ad2ad0..4f23000 100644
> >> >> --- a/board/samsung/smdk5420/smdk5420.c
> >> >> +++ b/board/samsung/smdk5420/smdk5420.c
> >> >> @@ -18,14 +18,15 @@
> >> >>
> >> >> DECLARE_GLOBAL_DATA_PTR;
> >> >>
> >> >> -#ifdef CONFIG_USB_EHCI_EXYNOS
> >> >> +#ifdef CONFIG_USB_XHCI_EXYNOS
> >> >>
> >> >> static int board_usb_vbus_init(void)
> >> >> {
> >> >>
> >> >> - struct exynos5_gpio_part1 *gpio1 = (struct exynos5_gpio_part1
> >> >> *) -
> >> >> samsung_get_base_gpio_part1(); + struct exynos5420_gpio_part4
> >> >> *gpio4 = (struct exynos5420_gpio_part4 *) +
> >> >>
> >> >> samsung_get_base_gpio_part4();
> >> >>
> >> >> /* Enable VBUS power switch */
> >> >>
> >> >> - s5p_gpio_direction_output(&gpio1->x2, 6, 1);
> >> >> + s5p_gpio_direction_output(&gpio4->g0, 5, 1);
> >> >> + s5p_gpio_direction_output(&gpio4->g1, 4, 1);
> >> >
> >> > This VBUS toggling should happen on per-port basis, right ?
> >>
> >> No this VBUS gpio toggling is actually enabling the VBUS line of the
> >> controller. And since we have 2 controllers on exynos5420, so added the
> >> required 2 gpios for the purpose
> >> (GPG0[5], and GPG1[4]).
> >
> > So if I understand this correctly, it should happen on per-controller
> > basis then?
>
> True, i thought of putting this in DT actually, similar to what we do
> for exynos5250 as also available in the patch :
> [PATCH 1/2] exynos5250: usb: Fix VBus gpio numbers for ehci and xhci
> controllers (http://patchwork.ozlabs.org/patch/306553/)
>
> But then the mathematics involved in gpio_direction_output() api
> doesn't yield me the correct gpio pin (which actually gave in case of
> Exynos5250).

Ugh, does that mean we have a breakage in the GPIO or DT stuff ?
[...]

Best regards,
Marek Vasut