devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Rob Herring <robh+dt@kernel.org>
Cc: Wei Xu <xuwei5@hisilicon.com>, Yu Chen <chenyu56@huawei.com>,
	John Stultz <john.stultz@linaro.org>,
	devicetree@vger.kernel.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH RESEND 1/7] dt-bindings: misc: add schema for USB hub on Kirin devices
Date: Fri, 17 Dec 2021 10:32:33 +0100	[thread overview]
Message-ID: <20211217103233.14e6e701@coco.lan> (raw)
In-Reply-To: <CAL_Jsq+Nvruuajk1m_za3WVroLhv=i_0YFtfdDbjhjM58dmJ8g@mail.gmail.com>

Em Thu, 16 Dec 2021 13:52:01 -0600
Rob Herring <robh+dt@kernel.org> escreveu:

> On Wed, Dec 15, 2021 at 2:54 AM Mauro Carvalho Chehab
> <mchehab+huawei@kernel.org> wrote:
> >
> > From: Yu Chen <chenyu56@huawei.com>
> >
> > This patch adds binding documentation to support USB HUB and
> > USB data role switch of HiSilicon HiKey960 and HiKey970 boards.  
> 
> I don't see the point in reviewing this given a driver was already
> merged anyways,

Makes sense. On the other hand, it also makes sense to apply
the DTS patches from this series, as those are the only things
pending for PCI/USB to work on those devices.

> I can't imagine that plugging in one USB port causing
> others to disconnect is a USB compliant design, and there are few
> boards and fewer users that care.

Afaikt, Kirin SoCs are designed for cell phones, with has just one
USB port. That's maybe the reason for such design.

Btw, this DT binding is used by both HiKey 960 and HiKey 970.
The HiKey960 board comes with just one port, which can either be 
host or gadget. So, it seems to be an USB-compliant design on
such hardware.

> > [mchehab: updated OF schema and added HiKey970 example]
> > Signed-off-by: Yu Chen <chenyu56@huawei.com>
> > Signed-off-by: John Stultz <john.stultz@linaro.org>
> > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
> > ---
> >
> > To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover.
> > See [PATCH RESEND 0/7] at: https://lore.kernel.org/all/cover.1639558366.git.mchehab+huawei@kernel.org/
> >
> >  .../bindings/misc/hisilicon,hikey-usb.yaml    | 87 +++++++++++++++++++
> >  1 file changed, 87 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/misc/hisilicon,hikey-usb.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/misc/hisilicon,hikey-usb.yaml b/Documentation/devicetree/bindings/misc/hisilicon,hikey-usb.yaml
> > new file mode 100644
> > index 000000000000..761ab686121a
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/misc/hisilicon,hikey-usb.yaml
> > @@ -0,0 +1,87 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +# Copyright 2019 Linaro Ltd.
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/misc/hisilicon,hikey-usb.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: HiKey960/970 onboard USB GPIO Hub
> > +
> > +maintainers:
> > +  - John Stultz <john.stultz@linaro.org>
> > +
> > +description: |
> > +  Supports the onboard USB GPIO hubs found on HiKey960/970.
> > +  Such hubs require a power supply for the USB I/O. Depending on the
> > +  exact hub model, after USB I/O is powered up, a reset should be needed.
> > +
> > +  It also acts as a role-switch intermediary to detect the state of
> > +  the USB-C port, to switch the hub into dual-role USB-C or host mode,
> > +  which enables and powers up the onboard USB-A host ports.
> > +
> > +  Schematics about such hubs can be found here:
> > +    https://github.com/96boards/documentation/raw/master/consumer/hikey/hikey960/hardware-docs/HiKey960_Schematics.pdf
> > +    https://www.96boards.org/documentation/consumer/hikey/hikey970/hardware-docs/files/hikey970-schematics.pdf
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - hisilicon,usbhub
> > +
> > +  typec-vbus-gpios:
> > +    $ref: /schemas/types.yaml#/definitions/phandle-array
> > +    description: phandle to the typec-vbus gpio
> > +
> > +  otg-switch-gpios:
> > +    $ref: /schemas/types.yaml#/definitions/phandle-array
> > +    description: phandle to the otg-switch gpio
> > +
> > +  hub-reset-en-gpios:
> > +    $ref: /schemas/types.yaml#/definitions/phandle-array
> > +    description: phandle to the hub reset gpio
> > +
> > +  usb-role-switch:
> > +    $ref: /schemas/types.yaml#/definitions/flag
> > +    description: Support role switch.
> > +
> > +  hub-vdd-supply:
> > +    description: regulator for hub power
> > +
> > +  port:
> > +    description: |
> > +      describe hadware connections between USB endpoints.  
> 
> USB endpoints? That's a s/w construct.
> 
> > +      Two ports are supported: the first being the endpoint that will  
> 
> 'port' means exactly 1 port.
> 
> > +      be notified by this driver, and the second being the endpoint
> > +      that notifies this driver of a role switch.  
> 
> IMO, this node should represent the HS switch. I would expect an input
> port connected to the USB host and an output port with 2 endpoints
> connected to USB-C connector and the hub.
> 
> host(HS port) -> (port@0)Switch(port@1)+--endpoint@0 -> USB-C connector
>                                        |--endpoint@1 -> 2.0 hub

Yeah, that's what I meant to say. One port with two endpoints.
I'll fix the description. 

See, this is the properties used by the USB hub to work for HiKey 960:

	usb-hub {
			compatible = "hisilicon,usbhub";
			typec-vbus-gpios = <&gpio25 2 GPIO_ACTIVE_HIGH>;
			otg-switch-gpios = <&gpio25 6 GPIO_ACTIVE_HIGH>;
			hub-vdd-supply = <&usb_hub_vdd>;
			usb-role-switch;
	
		port {
			#address-cells = <1>;
			#size-cells = <0>;

			hikey_usb_ep0: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&dwc3_role_switch>;
			};
			hikey_usb_ep1: endpoint@1 {
				reg = <1>;
				remote-endpoint = <&rt1711h_ep>;
			};
		};
	};

> Then there's what does the hub look like which has been discussed
> separately and is still not upstream I think.

No, the hub driver was already merged.

> But again, given this is devboard with limited use, I would just make
> using USB-C vs. USB host connectors a fixed boot time configuration
> with some one time setup and move on...

Provided that everything was merged already, including the hub driver,
IMO the best would be to address the points you took on this patch
and apply them with your ack, via Wei's tree.

Mauro

  reply	other threads:[~2021-12-17  9:32 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-15  8:54 [PATCH RESEND 0/7] DT bindings for Hikey960/970 USB/PCI Mauro Carvalho Chehab
2021-12-15  8:54 ` [PATCH RESEND 1/7] dt-bindings: misc: add schema for USB hub on Kirin devices Mauro Carvalho Chehab
2021-12-16 19:52   ` Rob Herring
2021-12-17  9:32     ` Mauro Carvalho Chehab [this message]
2021-12-15  8:54 ` [PATCH RESEND 2/7] dt-bindings: clock: hi3670-clock.txt: add pmctrl compatible Mauro Carvalho Chehab
2021-12-16 19:54   ` Rob Herring
2021-12-15  8:54 ` [PATCH RESEND 3/7] dt-bindings: usb: hisilicon,hi3670-dwc3: add binding for Kirin970 Mauro Carvalho Chehab
2021-12-16 20:01   ` Rob Herring
2021-12-15  8:54 ` [PATCH RESEND 4/7] arm64: dts: hisilicon: Add support for Hikey 970 USB3 PHY Mauro Carvalho Chehab
2021-12-15  8:54 ` [PATCH RESEND 5/7] arm64: dts: HiSilicon: Add support for HiKey 970 PCIe controller hardware Mauro Carvalho Chehab
2021-12-15  8:54 ` [PATCH RESEND 6/7] arm64: dts: hisilicon: Add usb mux hub for hikey970 Mauro Carvalho Chehab
2021-12-15  8:54 ` [PATCH RESEND 7/7] arm64: dts: hisilicon: Add usb mux hub for hikey960 Mauro Carvalho Chehab

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=20211217103233.14e6e701@coco.lan \
    --to=mchehab+huawei@kernel.org \
    --cc=chenyu56@huawei.com \
    --cc=devicetree@vger.kernel.org \
    --cc=john.stultz@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=xuwei5@hisilicon.com \
    /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;
as well as URLs for NNTP newsgroup(s).