Re: [RFC 00/19] dwc3: add USB OTG role switch support

From: Robert Baldyga
Date: Thu Mar 19 2015 - 04:27:40 EST


Hi Chanwoo,

On 03/19/2015 03:33 AM, Chanwoo Choi wrote:
> Hi Robert,
>
> Did you test the extcon-odroid-otg driver on Odroid-U3?

Yes, I tested it with Odroid U3, U3+, X2, XU3 and it works well.

Best regards,
Robert

>
> Thanks,
> Chanwoo Choi
>
> On 03/18/2015 11:04 PM, Robert Baldyga wrote:
>> Hello,
>>
>> This patchset introduces OTG feature in DWC3 DRD driver. This allows
>> to change dynamically between host and peripheral mode depending on
>> detected USB cable type.
>>
>> DWC3 driver behaviour is changed only in situation when selected operation
>> mode (dr_mode) is "otg", and hardware OTG support is available or extended
>> OTG operations are supplied for given platform.
>>
>> It such conditions are fulfilled, none of modes is enabled by default
>> and dwc3 core Best regards,
>> Robert Baldygais being uninitialized. After USB cable detection relevant
>> mode is selected and dwc3 core is initialized. Cable disconnection causes
>> deinitialization of dwc3 core.
>>
>> File otg.c is inspired by code of DWC3 driver from Hardkernel linux
>> sources [1]. I have never tested it on DWC3 version equipped with hardware
>> OTG support, but I belive that this code have chance to work or at least
>> it's easy to fix. I have tested this on OdroidXU3 board which has USB
>> cable detection mechanism based on two gpio pins. I used extcon driver
>> for those feature, which is also attached to following patchset.
>>
>> I consider if ext_otg_ops it the right solution. Current solution is
>> based on Hardkernel sources, but it's very likely that adding extcon
>> support directly to otg.c would be generic enough, as most of cable
>> detection mechanisms can be simply represented by extcon devices.
>>
>> Thanks in advance for your comments.
>>
>> Best regards,
>> Robert Baldyga
>>
>> [1] https://github.com/hardkernel/linux
>>
>> Robert Baldyga (19):
>> extcon: add extcon-odroid-usbotg driver
>> dt-bindings: extcon: Add doc for extcon-odroid-usbotg
>> ARM: dts: exynos5422-odroidxu3: add odroid-usbotg extcon support
>> dwc3: gadget: add VBUS session handling
>> dwc3: gadget: enable/disable ep0 in dwc3_gadget_run_stop()
>> dwc3: gadget: check returned value in suspend/resume
>> dwc3: core: cleanup suspend/resume code
>> dwc3: core: handle event buffers in core_init/exit
>> dwc3: core: make dwc3_core_init/exit non-static
>> dwc3: add missing OTG register definitions
>> dwc3: add OTG handling code
>> dwc3: otg: add ext_otg_ops support
>> dwc3: gadget: register gadget in OTG core
>> dwc3: host: don't add XHCI device only if in OTG mode
>> dwc3: core: initialize OTG in DWC3 core
>> dwc3: exynos: add software role switching code
>> ARM: dts: exynos5420: set usb3_lpm_capable in dwc3 controllers
>> ARM: dts: exynos5420: add snps,dis_u3_susphy_quirk to dwc3 controllers
>> ARM: dts: exynos5422-odroidxu3: make usbdrd3 extcon client
>>
>> .../bindings/extcon/extcon-odroid-usbotg.txt | 16 +
>> .../devicetree/bindings/usb/exynos-usb.txt | 4 +
>> arch/arm/boot/dts/exynos5420.dtsi | 6 +
>> arch/arm/boot/dts/exynos5422-odroidxu3.dts | 24 +
>> drivers/extcon/Kconfig | 4 +
>> drivers/extcon/Makefile | 1 +
>> drivers/extcon/extcon-odroid-usbotg.c | 257 +++++++++
>> drivers/usb/dwc3/Kconfig | 1 +
>> drivers/usb/dwc3/Makefile | 4 +
>> drivers/usb/dwc3/core.c | 66 ++-
>> drivers/usb/dwc3/core.h | 22 +
>> drivers/usb/dwc3/dwc3-exynos.c | 162 ++++++
>> drivers/usb/dwc3/gadget.c | 106 ++--
>> drivers/usb/dwc3/host.c | 10 +-
>> drivers/usb/dwc3/otg.c | 577 +++++++++++++++++++++
>> drivers/usb/dwc3/otg.h | 113 ++++
>> 16 files changed, 1320 insertions(+), 53 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/extcon/extcon-odroid-usbotg.txt
>> create mode 100644 drivers/extcon/extcon-odroid-usbotg.c
>> create mode 100644 drivers/usb/dwc3/otg.c
>> create mode 100644 drivers/usb/dwc3/otg.h
>>
>
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/