On 30/11/2022 10:00, Kunihiko Hayashi wrote: > Hi Krzysztof, > > On 2022/11/29 23:52, Krzysztof Kozlowski wrote: >> On 29/11/2022 11:35, Kunihiko Hayashi wrote: >>> Add DT binding schema for components belonging to the platform-specific >>> DWC3 USB glue layer implemented in UniPhier SoCs. >>> >>> This USB glue layer works as a sideband logic for the host controller, >>> including core reset, vbus control, PHYs, and some signals to the >>> controller. >>> >>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx> >>> --- >>> .../socionext,uniphier-dwc3-glue.yaml | 106 ++++++++++++++++++ >>> 1 file changed, 106 insertions(+) >>> create mode 100644 >>> Documentation/devicetree/bindings/soc/socionext/socionext,uniphier-dwc3-glue.yaml >>> >>> diff --git >>> a/Documentation/devicetree/bindings/soc/socionext/socionext,uniphier-dwc3-glue.yaml >>> b/Documentation/devicetree/bindings/soc/socionext/socionext,uniphier-dwc3-glue.yaml >>> new file mode 100644 >>> index 000000000000..66f8786dd305 >>> --- /dev/null >>> +++ >>> b/Documentation/devicetree/bindings/soc/socionext/socionext,uniphier-dwc3-glue.yaml >>> @@ -0,0 +1,106 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: >>> http://devicetree.org/schemas/soc/socionext/socionext,uniphier-dwc3-glue.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Socionext UniPhier SoC DWC3 USB3.0 glue layer >>> + >>> +maintainers: >>> + - Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx> >>> + >>> +description: |+ >>> + DWC3 USB3.0 glue layer implemented on Socionext UniPhier SoCs is >>> + a sideband logic handling signals to DWC3 host controller inside >>> + USB3.0 component. >>> + >>> +properties: >>> + compatible: >>> + items: >>> + - enum: >>> + - socionext,uniphier-pro4-dwc3-glue >>> + - socionext,uniphier-pro5-dwc3-glue >>> + - socionext,uniphier-pxs2-dwc3-glue >>> + - socionext,uniphier-ld20-dwc3-glue >>> + - socionext,uniphier-pxs3-dwc3-glue >>> + - socionext,uniphier-nx1-dwc3-glue >>> + - const: simple-mfd >>> + >>> + reg: >>> + maxItems: 1 >>> + >>> + '#address-cells': >>> + const: 1 >>> + >>> + '#size-cells': >>> + const: 1 >>> + >>> + ranges: true >>> + >>> +patternProperties: >>> + "^reset-controller@[0-9a-f]+$": >>> + $ref: /schemas/reset/socionext,uniphier-glue-reset.yaml# >>> + >>> + "^regulator@[0-9a-f]+$": >>> + $ref: /schemas/regulator/socionext,uniphier-regulator.yaml# >>> + >>> + "^phy@[0-9a-f]+$": >>> + oneOf: >>> + - $ref: /schemas/phy/socionext,uniphier-usb3hs-phy.yaml# >>> + - $ref: /schemas/phy/socionext,uniphier-usb3ss-phy.yaml# >>> + >>> +required: >>> + - compatible >>> + - reg >>> + >>> +additionalProperties: false >>> + >>> +examples: >>> + - | >>> + usb-controller@65b00000 { >> >> Node name: usb. There is no usage of "usb-controller". > > I'm confusing about that. > > This is an interface logic and doesn't have USB functions by itself. > Surely there is a USB host controller node "usb@..." in the same SoC. > Can this node be renamed to "usb"? > > I've renamed the dts node name once in commit 4cc752a88ca9 > ("arm64: dts: uniphier: Rename usb-glue node for USB3 to usb-controller"). In (almost?) all other cases it is still called "usb". A bit akward to have usb in usb, but usb-controller did not stick... > >>> + compatible = "socionext,uniphier-ld20-dwc3-glue", "simple-mfd"; >>> + reg = <0x65b00000 0x400>; >>> + #address-cells = <1>; >>> + #size-cells = <1>; >>> + ranges = <0 0x65b00000 0x400>; >>> + >>> + reset-controller@0 { >>> + compatible = "socionext,uniphier-ld20-usb3-reset"; >>> + reg = <0x0 0x4>; >> >> So now I see the unit addresses, which means none of your previous >> patches needed them. This raises next question - why this device is >> special and does not use syscon but own unit address? > > The glue layer has a fixed register address for each child unlike > the previous patch. > > This layer has also the other registers for USB core outside > the child nodes, however, there is no parent device that manages > these registers, so this layer node itself should take care of these > registers. > >> Are the children here - regulator, reset controller and phys - related >> to the USB? > > Yes, this "glue layer" is an interface of the USB controller, so these > children are only used for the USB controller. OK Best regards, Krzysztof