Describe the set of pins used to connect the detachable keyboard on detachable ChromeOS devices. The set of pins is called the "pogo pins". It's basically USB 2.0 with an extra pin for base detection. 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. Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx> Cc: Conor Dooley <conor+dt@xxxxxxxxxx> Cc: Benson Leung <bleung@xxxxxxxxxxxx> Cc: Guenter Roeck <groeck@xxxxxxxxxxxx> Cc: <devicetree@xxxxxxxxxxxxxxx> Cc: <chrome-platform@xxxxxxxxxxxxxxx> Cc: Pin-yen Lin <treapking@xxxxxxxxxxxx> Signed-off-by: Stephen Boyd <swboyd@xxxxxxxxxxxx> --- .../chrome/google,pogo-pin-connector.yaml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Documentation/devicetree/bindings/chrome/google,pogo-pin-connector.yaml 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 +--- +$id: http://devicetree.org/schemas/chrome/google,pogo-pin-connector.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Google Pogo Pin Connector + +maintainers: + - Stephen Boyd <swboyd@xxxxxxxxxxxx> + +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 + +patternProperties: + "^keyboard@[0-9a-f]{1,2}$": + description: The detachable keyboard + type: object + $ref: /schemas/usb/usb-device.yaml + +required: + - compatible + - '#address-cells' + - '#size-cells' + - port + +additionalProperties: false + +examples: + - | + connector { + compatible = "google,pogo-pin-connector"; + #address-cells = <1>; + #size-cells = <0>; + + keyboard@2 { + compatible = "usb18d1,504c"; + reg = <2>; + }; + + port { + pogo_connector_in: endpoint { + remote-endpoint = <&usb_hub_dsp3_hs>; + }; + }; + }; + +... -- https://chromeos.dev