public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: icenowy@aosc.xyz (Icenowy Zheng)
To: linux-arm-kernel@lists.infradead.org
Subject: [linux-sunxi] [PATCH v3 0/5] Add dual-role OTG support for Allwinner H3
Date: Tue, 07 Mar 2017 08:24:53 +0800	[thread overview]
Message-ID: <974021488846293@web19o.yandex.ru> (raw)
In-Reply-To: <e110a2c0-ee91-b6eb-9e94-e32034aae4d7@megous.com>



07.03.2017, 07:48, "Ond?ej Jirman" <megous@megous.com>:
> Hi Icenowy,
>
> when I was trying to add OTG support I found an issue with powercycling.
> When I have USB cable connecting PC and the OTG port on the SBC, when
> the board enables the vbus, it would become impossible to power cycle
> the board after poweroff. The reason being that when vbus is enabled,
> the board is powered from the OTG port even if you disconnect the barrel
> plug.
>
> Should kernel turn off the vbus before shutting down/restarting? What do
> you think?

It's a good problem.

I think this problem can be abstracted into:
Some regulators are needed to be shut down before system 
shutdown.

Is there any framework for it?

Mark,
I add you to recipients for the question above.

Thanks,
Icenowy

>
> regards,
> ??o.
>
> Dne 6.3.2017 v 23:34 Icenowy Zheng napsal(a):
>> ?Allwinner H3 have a its USB PHY0 routed to two USB controllers: one is
>> ?a MUSB controller, which can work in peripheral mode, but works badly in
>> ?host mode (several hardware will fail on the MUSB controller, even connect
>> ?one MUSB controller in peripheral mode to another one in host mode cannot
>> ?work); the other is a pair of EHCI/OHCI controller, which can work only
>> ?in host mode, but have better compatibillity. The route is controlled in
>> ?a register, which we have set it to HCI only when we do not know about
>> ?it well.
>>
>> ?Add support to route to the best controller according to current USB mode
>> ?(host/peripheral).
>>
>> ?Note: Currently even if hardware only support hostmode, we should still
>> ?enable the MUSB controller, as it controls the USB mode. (Some this kind
>> ?of hardware can also work in peripheral mode by settings in the sysfs
>> ?node of MUSB, then connect it to another host via a USB Type-A to Type-A
>> ?cable.)
>>
>> ?Patch 1 changes the device tree binding to include the "pmu0" for HCI pair.
>>
>> ?Patch 2 adds support for auto routing of PHY0. It's currently only enabled
>> ?on H3, but it's easy to extend it to other SoCs which feature this
>> ?route control.
>>
>> ?Patch 3 adds necessary device tree nodes to the H3 DTSI file. Note: The
>> ?phy is not bind for OHCI/EHCI0, as OHCI/EHCI drivers will keep the VBUS
>> ?on. Only MUSB driver can properly handle a dual-role PHY.
>>
>> ?Patch 4 enables USB OTG functionality on Orange Pi One board, which is
>> ?the only H3 board I have that have proper OTG function. It's easy to
>> ?enable OTG on other boards with their schematics.
>>
>> ?Patch 5 enables USB OTG functionality on Orange Pi Zero board, as the
>> ?board cannot output power on Vbus, I only enabled peripheral mode by
>> ?default.
>>
>> ?The USB PHY on V3s/A64 SoCs also feature this capability, and it will
>> ?be soon enabled on these SoCs after this patchset is merged.
>>
>> ?Icenowy Zheng (5):
>> ???dt: bindings: add pmu0 regs for USB PHYs on Allwinner H3/V3s/A64
>> ???phy: sun4i-usb: support automatically switch PHY0 route to MUSB/HCI
>> ???ARM: dts: sun8i: h3: add usb_otg and OHCI/EHCI for usbc0 on H3
>> ???ARM: dts: sun8i: h3: enable USB OTG on Orange Pi One
>> ???ARM: dts: sun8i: h2+: enable USB OTG for Orange Pi Zero board
>>
>> ??.../devicetree/bindings/phy/sun4i-usb-phy.txt | 1 +
>> ??arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts | 14 ++++++
>> ??arch/arm/boot/dts/sun8i-h3-orangepi-one.dts | 22 +++++++++-
>> ??arch/arm/boot/dts/sun8i-h3.dtsi | 32 ++++++++++++++
>> ??drivers/phy/phy-sun4i-usb.c | 50 ++++++++++++++--------
>> ??5 files changed, 101 insertions(+), 18 deletions(-)

  reply	other threads:[~2017-03-07  0:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-06 22:34 [PATCH v3 0/5] Add dual-role OTG support for Allwinner H3 Icenowy Zheng
2017-03-06 22:34 ` [PATCH v3 1/5] dt: bindings: add pmu0 regs for USB PHYs on Allwinner H3/V3s/A64 Icenowy Zheng
2017-03-09 10:10   ` [linux-sunxi] " Chen-Yu Tsai
2017-03-06 22:34 ` [PATCH v3 2/5] phy: sun4i-usb: support automatically switch PHY0 route to MUSB/HCI Icenowy Zheng
2017-03-06 22:34 ` [PATCH v3 3/5] ARM: dts: sun8i: h3: add usb_otg and OHCI/EHCI for usbc0 on H3 Icenowy Zheng
2017-03-15  7:05   ` [linux-sunxi] " Chen-Yu Tsai
2017-03-06 22:34 ` [PATCH v3 4/5] ARM: dts: sun8i: h3: enable USB OTG on Orange Pi One Icenowy Zheng
2017-03-15  7:05   ` [linux-sunxi] " Chen-Yu Tsai
2017-03-06 22:34 ` [PATCH v3 5/5] ARM: dts: sun8i: h2+: enable USB OTG for Orange Pi Zero board Icenowy Zheng
2017-03-15  7:16   ` [linux-sunxi] " Chen-Yu Tsai
2017-03-06 23:48 ` [linux-sunxi] [PATCH v3 0/5] Add dual-role OTG support for Allwinner H3 Ondřej Jirman
2017-03-07  0:24   ` Icenowy Zheng [this message]
2017-03-07  2:47     ` Chen-Yu Tsai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=974021488846293@web19o.yandex.ru \
    --to=icenowy@aosc.xyz \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox