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

Vivek Gautam
2014-01-07T09:03:01Z

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).
So i thought of putting it in the board file only. I should have put
proper comment here although :-(

>
> Best regards,
> Marek Vasut

--
Best Regards
Vivek Gautam
Samsung R&D Institute, Bangalore
India