[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL_Jsq+6cj99+7cb1vrZ9eLouo-pPWTDjDEOotDQExazdrx-XA@mail.gmail.com>
Date: Wed, 17 Jun 2020 10:13:04 -0600
From: Rob Herring <robh@...nel.org>
To: Mike Looijmans <mike.looijmans@...ic.nl>
Cc: Linux USB List <linux-usb@...r.kernel.org>,
devicetree@...r.kernel.org,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Felipe Balbi <balbi@...nel.org>
Subject: Re: [PATCH v2] usb: dwc3: Add support for VBUS power control
On Wed, Jun 17, 2020 at 8:38 AM Mike Looijmans <mike.looijmans@...ic.nl> wrote:
>
>
> Met vriendelijke groet / kind regards,
>
> Mike Looijmans
> System Expert
>
>
> TOPIC Embedded Products B.V.
> Materiaalweg 4, 5681 RJ Best
> The Netherlands
>
> T: +31 (0) 499 33 69 69
> E: mike.looijmans@...icproducts.com
> W: www.topicproducts.com
>
> Please consider the environment before printing this e-mail
> On 10-06-2020 22:22, Rob Herring wrote:
> > On Wed, Jun 03, 2020 at 02:09:15PM +0200, Mike Looijmans wrote:
> >> Support VBUS power control using regulator framework. Enables the regulator
> >> while the port is in host mode.
> >>
> >> Signed-off-by: Mike Looijmans <mike.looijmans@...ic.nl>
> >> ---
> >> v2: Add missing devm_regulator_get call which got lost during rebase
> >>
> >> .../devicetree/bindings/usb/dwc3.txt | 1 +
> >> drivers/usb/dwc3/core.c | 34 ++++++++++++++-----
> >> drivers/usb/dwc3/core.h | 4 +++
> >> drivers/usb/dwc3/drd.c | 6 ++--
> >> 4 files changed, 33 insertions(+), 12 deletions(-)
> >>
> >> diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
> >> index 9946ff9ba735..56bc3f238e2d 100644
> >> --- a/Documentation/devicetree/bindings/usb/dwc3.txt
> >> +++ b/Documentation/devicetree/bindings/usb/dwc3.txt
> >> @@ -37,6 +37,7 @@ Optional properties:
> >> - phys: from the *Generic PHY* bindings
> >> - phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
> >> or "usb3-phy".
> >> + - vbus-supply: Regulator handle that provides the VBUS power.
> > Does the DWC3 block require Vbus to power itself? Doubtful. This
> > belongs in a usb-connector node. If the DWC3 driver wants to get the
> > Vbus supply, it can fetch it from that node.
> >
> > Rob
>
> Okay, I've been digging into that. But there's no actual driver that
> binds to a "usb-b-connector" compatible, so how do we get to the
> vbus-supply from there?
>
> [devm_]regulator_get only accepts a device as argument, and will not
> look into child nodes. The only way to get at the vbus of a child node
> (or a node linked through a port) would be to hand-code the equivalent
> of of_regulator_get(), which will not be acceptable.
Doesn't it look into child nodes calling of_get_child_regulator()?
You're right that it wouldn't work if graph is used. The connector has
to be either a child of a controller for the connector or the USB
controller. I'd expect you'd have the former for Type-C, but for
"usb-b-connector" the parent is more likely just the USB controller.
In any case, having a struct device shouldn't be a requirement and
most subsystems expose a get function only needing the DT node.
> Or is it the intention that I write a usb-X-connector device driver
> first that handles the vbus?
That's a kernel implementation detail that is independent of the
binding, but yes we'll probably need a driver or library helper
functions eventually. Note that it is possible to have a struct device
without a driver.
Rob
Powered by blists - more mailing lists