[U-Boot] [PATCH 12/13] sunxi: A13-Olinuxino: Enable the USB OTG controller

Hans de Goede
2015-09-10T18:47:03Z

Hi,

On 03-09-15 23:41, Maxime Ripard wrote:
> Hi Hans,
>
> On Tue, Sep 01, 2015 at 11:01:06AM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 31-08-15 16:46, Maxime Ripard wrote:
>>> The A13-Olinuxino has a mini-USB connector that can be used to power up
>>> the board and as an OTG connector.
>>>
>>> Since we have already some USB host-only ports right beside this one,
>>> enable it in gadget mode
>>>
>>> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
>>> ---
>>> configs/A13-OLinuXino_defconfig | 2 ++
>>> 1 file changed, 2 insertions(+)
>>>
>>> diff --git a/configs/A13-OLinuXino_defconfig b/configs/A13-OLinuXino_defconfig
>>> index 4b4337223ca5..70aa194b91c4 100644
>>> --- a/configs/A13-OLinuXino_defconfig
>>> +++ b/configs/A13-OLinuXino_defconfig
>>> @@ -3,6 +3,7 @@ CONFIG_ARCH_SUNXI=y
>>> CONFIG_MACH_SUN5I=y
>>> CONFIG_DRAM_CLK=408
>>> CONFIG_DRAM_EMR1=0
>>> +CONFIG_USB0_VBUS_DET="PG1"
>>> CONFIG_USB1_VBUS_PIN="PG11"
>>> CONFIG_AXP_GPIO=y
>>> # CONFIG_VIDEO_HDMI is not set
>>> @@ -11,6 +12,7 @@ CONFIG_VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH=y
>>> CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:3,vmode:0"
>>> CONFIG_VIDEO_LCD_POWER="AXP0-0"
>>> CONFIG_VIDEO_LCD_BL_PWM="PB2"
>>> +CONFIG_USB_MUSB_SUNXI=y
>>> CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino"
>>> # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
>>> CONFIG_SPL=y
>>
>> The CONFIG_xxx defines for using MUSB in either host or gadget mode have
>> changed in v2015.10, looks like you need to rebase this series and fix
>> this.
>
> This was based on 2015.10-rc2.

Are you sure?

drivers/usb/musb-new/Kconfig has:

config USB_MUSB_HOST
bool "MUSB host mode support"
help
Enables the MUSB USB dual-role controller in host mode.

config USB_MUSB_GADGET
bool "MUSB gadget mode support"
help
Enables the MUSB USB dual-role controller in gadget mode.

if USB_MUSB_HOST || USB_MUSB_GADGET

config USB_MUSB_SUNXI
bool "Enable sunxi OTG / DRC USB controller"
depends on ARCH_SUNXI
default y
---help---
Say y here to enable support for the sunxi OTG / DRC USB controller
used on almost all sunxi boards.

endif

And you are not setting USB_MUSB_HOST nor USB_MUSB_GADGET so you should
never get a chance to set USB_MUSB_SUNXI. Also note that USB_MUSB_SUNXI
gets selected automatically as soon as you select either USB_MUSB_HOST
or USB_MUSB_GADGET...

> I enabled it as a gadget through
> menuconfig. What is the policy on using gadget vs host? I guess it
> would make more sense to enable all the OTG connectors to gadget, but
> maybe that's just me.

The policy I'm thinking of (and which we are currently sorta following
wrt enabling USB_MUSB_HOST) is that on devices with no normal usb
ports we use USB_MUSB_HOST, so that people can interact with u-boot
without needing a serial console (which often requires soldering).

On boards which do have a normal usb port I fully agree that
USB_MUSB_GADGET is a good default.

In practice this will likely boil down to use USB_MUSB_HOST on tablets
and USB_MUSB_GADGET everywhere else.

Regards,

Hans