Quoting Krzysztof Kozlowski (2024-02-11 05:39:36) > On 10/02/2024 08:09, Stephen Boyd wrote: > > diff --git a/Documentation/devicetree/bindings/chrome/google,pogo-pin-connector.yaml b/Documentation/devicetree/bindings/chrome/google,pogo-pin-connector.yaml > > new file mode 100644 > > index 000000000000..5ba68fd95fcd > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/chrome/google,pogo-pin-connector.yaml > > @@ -0,0 +1,61 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- [...] > > > +properties: > > + compatible: > > + const: google,pogo-pin-connector > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > + > > + port: > > + $ref: /schemas/graph.yaml#/properties/port > > + description: Connection to USB2 port providing USB signals > > + required: > > + - endpoint > > Drop required. Why? I'd like to make it so you can't have the node defined without connecting it up to the rest of the system. Is that bad? > > > > + > > +patternProperties: > > + "^keyboard@[0-9a-f]{1,2}$": > > + description: The detachable keyboard > > If this is detachable why do you define it in DT? Only hard-wired USB > devices, which need some sort of special handling. are described in DT. >From the commit text: We expect to find a keyboard on the other side of this connector with a specific vid/pid, so describe that as a child device at the port of the usb device connected upstream. ChromeOS userspace is checking that the connected device downstream of this port has the expected vid/pid to quickly rule out USB keyboards that aren't the detachable keyboard. I wanted to express this in DT so that it didn't live in ChromeOS userspace forever.