Message ID | 20250328082950.1473406-1-treapking@chromium.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/2] dt-bindings: usb: Add binding for PS5511 hub controller | expand |
On Fri, Mar 28, 2025 at 04:28:45PM +0800, Pin-yen Lin wrote: > + > +title: PS5511 4+1 Port USB 3.2 Gen 1 Hub Controller s/PS5511/Parade PS5511/ > + > +maintainers: > + - Pin-yen Lin <treapking@chromium.org> > + > +properties: > + compatible: > + enum: > + - usb1da0,5511 > + - usb1da0,55a1 > + > + reg: true > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + reset-gpios: > + items: > + - description: GPIO specifier for GRST# pin. > + > + vddd11-supply: > + description: > + 1V1 power supply to the hub > + > + vdd33-supply: > + description: > + 3V3 power supply to the hub > + > + peer-hub: > + $ref: /schemas/types.yaml#/definitions/phandle > + description: > + phandle to the peer hub on the controller. > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports I don't understand why do you need OF graph here. Children are already defined in patternProperties as usb-devices. Where is any upstream DTS using this schema? > + > + properties: > + port@1: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + 1st downstream facing USB port > + > + port@2: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + 2nd downstream facing USB port > + > + port@3: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + 3rd downstream facing USB port > + > + port@4: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + 4th downstream facing USB port > + > + port@5: > + $ref: /schemas/graph.yaml#/properties/port > + description: > + 5th downstream facing USB port > + > +required: > + - compatible > + - reg > + - peer-hub > + > +patternProperties: patternProperties follow immediately properties, so move it up. > + '^.*@[1-5]$': > + description: The hard wired USB devices > + type: object > + $ref: /schemas/usb/usb-device.yaml > + additionalProperties: true > + > +additionalProperties: false > + > +allOf: > + - $ref: usb-device.yaml# > + - if: > + not: > + properties: > + compatible: > + enum: > + - usb1da0,usb55a1 > + then: > + properties: > + port@5: false No such property. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/usb/parade,ps5511.yaml b/Documentation/devicetree/bindings/usb/parade,ps5511.yaml new file mode 100644 index 00000000000000..605f94df561428 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/parade,ps5511.yaml @@ -0,0 +1,138 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/parade,ps5511.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: PS5511 4+1 Port USB 3.2 Gen 1 Hub Controller + +maintainers: + - Pin-yen Lin <treapking@chromium.org> + +properties: + compatible: + enum: + - usb1da0,5511 + - usb1da0,55a1 + + reg: true + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + reset-gpios: + items: + - description: GPIO specifier for GRST# pin. + + vddd11-supply: + description: + 1V1 power supply to the hub + + vdd33-supply: + description: + 3V3 power supply to the hub + + peer-hub: + $ref: /schemas/types.yaml#/definitions/phandle + description: + phandle to the peer hub on the controller. + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: + 1st downstream facing USB port + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: + 2nd downstream facing USB port + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: + 3rd downstream facing USB port + + port@4: + $ref: /schemas/graph.yaml#/properties/port + description: + 4th downstream facing USB port + + port@5: + $ref: /schemas/graph.yaml#/properties/port + description: + 5th downstream facing USB port + +required: + - compatible + - reg + - peer-hub + +patternProperties: + '^.*@[1-5]$': + description: The hard wired USB devices + type: object + $ref: /schemas/usb/usb-device.yaml + additionalProperties: true + +additionalProperties: false + +allOf: + - $ref: usb-device.yaml# + - if: + not: + properties: + compatible: + enum: + - usb1da0,usb55a1 + then: + properties: + port@5: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + + usb { + #address-cells = <1>; + #size-cells = <0>; + + /* 2.0 hub on port 1 */ + hub_2_0: hub@1 { + compatible = "usb1da0,55a1"; + reg = <1>; + peer-hub = <&hub_3_0>; + #address-cells = <1>; + #size-cells = <0>; + /* USB 2.0 device on port 5 */ + device@5 { + reg = <5>; + compatible = "usb123,4567"; + }; + }; + + /* 3.0 hub on port 2 */ + hub_3_0: hub@2 { + compatible = "usb1da0,5511"; + reg = <2>; + peer-hub = <&hub_2_0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + /* Type-A connector on port 3 */ + port@3 { + reg = <3>; + endpoint { + remote-endpoint = <&usb_a0_ss>; + }; + }; + }; + }; + };
Parade PS5511 is USB hub with 4 USB 3.2 compliant 5Gbps downstream(DS) ports, and 1 extra USB 2.0 downstream port. The hub has one reset pin control and two power supplies (3V3 and 1V1). Signed-off-by: Pin-yen Lin <treapking@chromium.org> --- .../bindings/usb/parade,ps5511.yaml | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 Documentation/devicetree/bindings/usb/parade,ps5511.yaml