RE: [PATCH v3] usb: core: verify devicetree nodes for USB devices

From: Peter Chen
Date: Mon May 13 2019 - 05:25:01 EST



> On 2019-05-13 11:00, Peter Chen wrote:
> >> On 2019-05-10 05:10, Peter Chen wrote:
> >>>> Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> writes:
> >>>>> Commit 69bec7259853 ("USB: core: let USB device know device node")
> >>>>> added support for attaching devicetree node for USB devices. The
> >>>>> mentioned commit however identifies the given USB device node only
> >>>>> by the
> >> 'reg'
> >>>>> property in the host controller children nodes. The USB device
> >>>>> node however also has to have a 'compatible' property as described
> >>>>> in Documentation/devicetree/bindings/usb/usb-device.txt. Lack for
> >>>>> the 'compatible' property check might result in assigning a
> >>>>> devicetree node, which is not intended to be the proper node for the given
> USB device.
> >>>>>
> >>>>> This is important especially when USB host controller has
> >>>>> child-nodes for other purposes. For example, Exynos EHCI and OHCI
> >>>>> drivers already define child-nodes for each physical root hub port
> >>>>> and assigns respective PHY controller and parameters for them.
> >>>>> Those binding predates support for USB devicetree nodes.
> >>>>>
> >>>>> Checking for the proper compatibility string allows to mitigate
> >>>>> the conflict between USB device devicetree nodes and the bindings
> >>>>> for USB controllers with child nodes. It also fixes the
> >>>>> side-effect of the other commits, like 01fdf179f4b0 ("usb: core:
> >>>>> skip interfaces disabled in devicetree"), which incorrectly
> >>>>> disables some devices on Exynos based boards.
> >>> Hi Marek,
> >>>
> >>> The purpose of your patch is do not set of_node for device under USB
> >>> controller,
> >> right?
> >>
> >> Right.
> >>
> > Do you mind doing it at function exynos_ehci_get_phy of ehci-exynos.c?
>
> I don't mind fixing it in ehci-exynos, but frankly so far I have no idea how to do it.
> The problem is that newly created USB devices get of-node pointer pointing to a
> node which if not intended for them. How this can be fixed in ehci-exynos?
>

Can't be workaround by setting of_node as NULL for EHCI controller or for PHY node at
exynos_ehci_get_phy?

Peter