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@kernel.org>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Benson Leung <bleung@chromium.org>
Cc: <devicetree@vger.kernel.org>
Cc: <chrome-platform@lists.linux.dev>
Cc: Pin-yen Lin <treapking@chromium.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
---
.../usb/google,usb-pogo-keyboard.yaml | 68 +++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml
diff --git a/Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml b/Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml
new file mode 100644
index 000000000000..053c1cfed6d4
--- /dev/null
+++ b/Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/usb/google,usb-pogo-keyboard.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Google USB Pogo Pin Keyboard
+
+maintainers:
+ - Stephen Boyd <swboyd@chromium.org>
+
+description:
+ ChromeOS devices with a detachable keyboard have a set of five pogo pins that
+ are the typical four pins for USB (D+/D-, VBUS, GND) and an extra pin for
+ base detection. The detachable keyboard is a USB device that connects to the
+ four USB pogo pins.
+
+properties:
+ compatible:
+ const: google,usb-pogo-keyboard
+
+ '#address-cells':
+ const: 1
+
+ '#size-cells':
+ const: 0
+
+ port:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Connection to USB2 port providing USB HS signals
+ required:
+ - endpoint
+
+patternProperties:
+ '^keyboard@[0-9a-f]{1,2}$':
+ description: The detachable keyboard
+ type: object
+ $ref: /schemas/usb/usb-device.yaml
+ unevaluatedProperties: false
+
+required:
+ - compatible
+ - '#address-cells'
+ - '#size-cells'
+ - port
+
+additionalProperties: false
+
+examples:
+ - |
+ connector {
+ compatible = "google,usb-pogo-keyboard";
+ #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
On Tue, Feb 25, 2025 at 02:30:36PM -0800, Stephen Boyd wrote:
> 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@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Benson Leung <bleung@chromium.org>
> Cc: <devicetree@vger.kernel.org>
> Cc: <chrome-platform@lists.linux.dev>
> Cc: Pin-yen Lin <treapking@chromium.org>
> Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Still waiting for the binding (patch 1) to be picked up in the USB
subsystem, or an ack...so that I can pick the dts change.
Binding looks good to me.
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Regards,
Bjorn
> ---
> .../usb/google,usb-pogo-keyboard.yaml | 68 +++++++++++++++++++
> 1 file changed, 68 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml
>
> diff --git a/Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml b/Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml
> new file mode 100644
> index 000000000000..053c1cfed6d4
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/usb/google,usb-pogo-keyboard.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Google USB Pogo Pin Keyboard
> +
> +maintainers:
> + - Stephen Boyd <swboyd@chromium.org>
> +
> +description:
> + ChromeOS devices with a detachable keyboard have a set of five pogo pins that
> + are the typical four pins for USB (D+/D-, VBUS, GND) and an extra pin for
> + base detection. The detachable keyboard is a USB device that connects to the
> + four USB pogo pins.
> +
> +properties:
> + compatible:
> + const: google,usb-pogo-keyboard
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> + port:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Connection to USB2 port providing USB HS signals
> + required:
> + - endpoint
> +
> +patternProperties:
> + '^keyboard@[0-9a-f]{1,2}$':
> + description: The detachable keyboard
> + type: object
> + $ref: /schemas/usb/usb-device.yaml
> + unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - '#address-cells'
> + - '#size-cells'
> + - port
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + connector {
> + compatible = "google,usb-pogo-keyboard";
> + #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
>
On Tue, 25 Feb 2025 14:30:36 -0800, Stephen Boyd wrote: > 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@kernel.org> > Cc: Krzysztof Kozlowski <krzk+dt@kernel.org> > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: Benson Leung <bleung@chromium.org> > Cc: <devicetree@vger.kernel.org> > Cc: <chrome-platform@lists.linux.dev> > Cc: Pin-yen Lin <treapking@chromium.org> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> > --- > .../usb/google,usb-pogo-keyboard.yaml | 68 +++++++++++++++++++ > 1 file changed, 68 insertions(+) > create mode 100644 Documentation/devicetree/bindings/usb/google,usb-pogo-keyboard.yaml > Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
© 2016 - 2025 Red Hat, Inc.