Re: [PATCH 35/54] dt-bindings: usb: dwc3: Fix usb-phy check

Maxime Ripard
2021-07-29T12:31:43Z

Hi Rob,

On Fri, Jul 23, 2021 at 04:15:30PM -0600, Rob Herring wrote:
> On Wed, Jul 21, 2021 at 04:04:05PM +0200, Maxime Ripard wrote:
> > The original binding was allowing any combination of usb2-phy and
> > usb3-phy in the phys and phy-names properties.
> >
> > However, the current binding enforces that those properties must be a
> > list of usb2-phy and usb3-phy, with exactly one element, effectively
> > making usb2-phy the only value being valid.
>
> Huh? If 'maxItems' is not specified, then it's the length of 'items'
> list.

Even if minItems is set?

This doesn't really change anything to my issue though.

"""
- phy-names: from the *Generic PHY* bindings; supported names are "usb2-phy"
or "usb3-phy".
"""

The YAML binding has

phy-names:
minItems: 1
items:
- const: usb2-phy
- const: usb3-phy

which means that only usb2-phy is accepted (and possibly usb2-phy,
usb3-phy) but only usb3-phy isn't anymore, while it was valid according
to the original binding and used in multiple DT across multiple vendors
(arch/arm64/boot/dts/hisilicon/hi3660.dtsi,
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi)

> > Let's rework the properties description to allow either one or two
> > element picked with values either usb2-phy or usb3-phy. The rest of the
> > tooling makes sure that we don't get any duplicate value, so this should
> > be what we want.
>
> Is it really valid to have only a USB3 PHY and what you want here? That
> would mean the USB3 phy also handles USB2, right?

IIRC that's how it works for the H6 at least yes.

Maxime