On 15/02/2024 01:07, Stephen Boyd wrote: > 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? Hm, I double checked and you're right. I thought endpoint is required anyway by graph.yaml in dtschema, but it seems it is not. > >> >> >>> + >>> +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. OK, Best regards, Krzysztof