Message ID | 20240210070934.2549994-19-swboyd@chromium.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-60324-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:50ea:b0:106:860b:bbdd with SMTP id r10csp1337804dyd; Fri, 9 Feb 2024 23:17:03 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUm4Jv9MESOtW2EcIQ8aLr2m3Ncp0P3PElR6bHgql3O9FEUQmB8YYgFLAaWYZISEYgVvG7ZuJq0Vz5xt75d9CCiTHrg2w== X-Google-Smtp-Source: AGHT+IGqlzaGH5kBtfBGBhdtZmh8P6oNrpf3bo1KC3BXcIuoFuDl8LObRnSrMFD09zcWlNc8QlWW X-Received: by 2002:a05:6a20:c990:b0:19e:a1b5:e765 with SMTP id gy16-20020a056a20c99000b0019ea1b5e765mr1705660pzb.9.1707549423507; Fri, 09 Feb 2024 23:17:03 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1707549423; cv=pass; d=google.com; s=arc-20160816; b=zM3VuMNgab8AsuUs9S+RxKZ4/4bFeHbVX8SDu+Y/DklLed6UCEdopEIHNw71YCpS0u q0Y3xAOtdlJLxSSopg5dPUxAkxR0leZiCEo6zvb+aepPqyGHNDznsaC5sEia5fMMQxAJ zJK1doND0hJh7yeb6NGNHto0eJK3rpkVM9DUel52jaHEzivIIWIHumzKM8kzRoP7NMnM IFxM8WS56vxKwhC4wiQ+4aorvHbxfIZfelnjN6GJ3u/6njvG+JZQXI+zUpwQwnu3mOR1 gXMl+/FcnnF/gqmZzl2VAjUeoAQf3b8q1raVAoBc3wGX1OoY/xd4fE6SiiW60MtYEu5h KZsQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=nDZTkmgJLWBgtbMLYvgKp9lpTe2pMS2z/gX4STfhWdw=; fh=R7T6aGLfcA4bIMSXmarwxYt3G5eLYmhXdR+spAUpl7w=; b=h/TC08cZvMP3Jxnc64EmGrWN1anLtm169nPXdlMRvFpEW2fRwgOUAI663AR5ncehpb 0OaXT4rq5UZgxlwEHzDMGpSXhWVHiANN8YuwmYyHPxtVId4w6q089J26okeeB8LOlCFa aJEGnOLJ3sqfc/45CuozIxh+iL2wDa8bsvnMiIe/cvu2Tjc6fpBxwBuTn9Bt3Ht7quVo 7a8ZGVKdl7vUhQqtiIE1PFNDdyqT5jFf8WiOqeAhNmrMTuqBoaqJSs1cH0VWrE1TjXZd i0K/Cbn9D+lEliQ9L34l21mt/IjN9X2BqtoztLsfhP39tThOPJyg1uBIPP98AhAwU32I 8MPQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=EBPCKMmb; arc=pass (i=1 spf=pass spfdomain=chromium.org dkim=pass dkdomain=chromium.org dmarc=pass fromdomain=chromium.org); spf=pass (google.com: domain of linux-kernel+bounces-60324-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-60324-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org X-Forwarded-Encrypted: i=2; AJvYcCWVifUp/vh4Wy1JPvkL982GQjwHQyvFcbhPrSRx0jCk/BNMCWEQOpfzEw0LJx+Ro1HhrgiXpvLk0khOSggPS5jd7KS8+w== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id lp13-20020a17090b4a8d00b002960e3745cesi3050139pjb.177.2024.02.09.23.17.03 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Feb 2024 23:17:03 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-60324-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=EBPCKMmb; arc=pass (i=1 spf=pass spfdomain=chromium.org dkim=pass dkdomain=chromium.org dmarc=pass fromdomain=chromium.org); spf=pass (google.com: domain of linux-kernel+bounces-60324-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-60324-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 457A1281148 for <ouuuleilei@gmail.com>; Sat, 10 Feb 2024 07:17:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id C29763D542; Sat, 10 Feb 2024 07:10:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="EBPCKMmb" Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB14F3C468 for <linux-kernel@vger.kernel.org>; Sat, 10 Feb 2024 07:10:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707549013; cv=none; b=JufGPmbt4v1nTxREO4n7fZpAetEWFb3knc8apMpgL14qPPok48QVz58CmcQUn7KUh30O5XlOPs/SXDB1l4uIP3H7kF7NxFpG3YhXTERRb5Eam21HsLmvG5Zu0BaJARVxWQbeOlZBDdCuUcVCJt7JfhbfT8Y+776gDjKslQ5mspY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707549013; c=relaxed/simple; bh=QWiqq/EJWFUQcAozvbWJFLlKJLTTtEoiwf9S8hzbqeo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dweSFxwrrfiI9Y3aRneabArH+JE6AO7/Jpd7/I+8b2/DYEJXbl/ScYZvlX5xCl7ZoCC54DeZClTjsQuGA8rFGpASmkiFaZPoKCYd6VSDDo49CxDRciCOP8Su4lnx7tAJ+qoN3eLGGriEfLALSQkdYB1+ZYclRnynifhWpqCo/FE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=EBPCKMmb; arc=none smtp.client-ip=209.85.166.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-7c4205020c4so74260039f.1 for <linux-kernel@vger.kernel.org>; Fri, 09 Feb 2024 23:10:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1707549010; x=1708153810; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nDZTkmgJLWBgtbMLYvgKp9lpTe2pMS2z/gX4STfhWdw=; b=EBPCKMmbly507rz+7I39RF8gwJrkMOSmxnE/8DJxt1ozP2LYApwJGDRkbXQAxJjn8e Y3DyhaCixDP9uIPx6ia77hde3rLFk+14P39N3NFLt6H+0VJKt32McTA0weMZLPRVKk9E NKnBL0UAh6Re+yKG4+62UI1RM6Cm+lmYMYd2U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707549010; x=1708153810; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nDZTkmgJLWBgtbMLYvgKp9lpTe2pMS2z/gX4STfhWdw=; b=K65t6M2SrXjWKqltBnfmKxDTnEN1Ur/dFo591KjAnolgKU4a4exsgJ9QxIP2AEa2Lg bKyJOm91dmlNo5Lt8pCtCNXP6zfY4KPMhRvp0Kioq/V9ZNkTrdj0wtY4i8bkTEt2HI2T mCpCLkwjs2IIx3VPJ0ozFWYraooSJids0LhGRkIeVN4ieu89ZVXCua6mb+3CmMKN03NI QmJHH7+B9rTOsT9QdVcdyT/qsnTT4KnL0vnweLZtiaM0b35BWYmu/vR4hJv+w5EKqdDP nQwwsY7wsgCYuCf5cUazvRkDMoxXEGAoZljHx09SO5FcF22ixJ0SQkGnu7siJ08aollI /kEA== X-Gm-Message-State: AOJu0YxcrNm8B20qeMNGwPq0eTcU6wGN5J9b4kqnygYYD6Ne5Ez54vf6 vPFm8bPpgvNzmEkp8dVMhtac9GfnbgLOUqFbwD94+1v1TBjIBIq9QZPZ/vy0Hw== X-Received: by 2002:a92:d68d:0:b0:363:8440:94af with SMTP id p13-20020a92d68d000000b00363844094afmr1850383iln.4.1707549009907; Fri, 09 Feb 2024 23:10:09 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXcbuzrwhJYBRxjSeZiLO7NiAXZkROYgoL66zUbURb+mKWdFNkE6YZWqeF+fYWzC1OoLZJ7vIaJmnoX3ubJWT7jqdvCY3rb09nwzZNcZhyC6krhPIcpvVvuVMMZNAnyKp9wnSSTH4t5cCAFUNIT7kJ+WfzMIPezrdAnaANZwomwtlICT/Zr6r6RH5dlWO4ezhFtYRQ6Q6Oh3zoSRI5OqGmM7ak06KvSvc3623YX+w3HE1EN3Csld1jrH73e0N3sxhR0B0J3jsxOise0EElL18ApOgIkSprzCthwYIBL1QtBa+JJtH2NCkcO9g0jOyB9NNaWXW17EVaMe/lRlek3BOYXPVYdRj87lUF0pBXGkR6DRfMEjWr7zzTZSsxS1JPLsk6LX/BNGwzXn6f6u6mmbipoH8xhmPQ3KatEpPcQwL4MwelEQEs/zshZ39hj53M= Received: from localhost (175.199.125.34.bc.googleusercontent.com. [34.125.199.175]) by smtp.gmail.com with UTF8SMTPSA id bx34-20020a056a02052200b005d8b69f882esm2566257pgb.38.2024.02.09.23.10.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 09 Feb 2024 23:10:09 -0800 (PST) From: Stephen Boyd <swboyd@chromium.org> To: chrome-platform@lists.linux.dev Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-msm@vger.kernel.org, Douglas Anderson <dianders@chromium.org>, Pin-yen Lin <treapking@chromium.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Benson Leung <bleung@chromium.org>, Guenter Roeck <groeck@chromium.org> Subject: [PATCH 18/22] dt-bindings: chrome: Add binding for ChromeOS Pogo pin connector Date: Fri, 9 Feb 2024 23:09:29 -0800 Message-ID: <20240210070934.2549994-19-swboyd@chromium.org> X-Mailer: git-send-email 2.43.0.687.g38aa6559b0-goog In-Reply-To: <20240210070934.2549994-1-swboyd@chromium.org> References: <20240210070934.2549994-1-swboyd@chromium.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1790495343911069456 X-GMAIL-MSGID: 1790495343911069456 |
Series |
platform/chrome: Add DT USB/DP muxing/topology to Trogdor
|
|
Commit Message
Stephen Boyd
Feb. 10, 2024, 7:09 a.m. UTC
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@kernel.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Benson Leung <bleung@chromium.org>
Cc: Guenter Roeck <groeck@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>
---
.../chrome/google,pogo-pin-connector.yaml | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
create mode 100644 Documentation/devicetree/bindings/chrome/google,pogo-pin-connector.yaml
Comments
On 10/02/2024 08:09, 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+dt@kernel.org> > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> > Cc: Conor Dooley <conor+dt@kernel.org> > Cc: Benson Leung <bleung@chromium.org> > Cc: Guenter Roeck <groeck@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> > --- > .../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@chromium.org> > + Missing description describing the hardware. > +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. > + > +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. > + type: object > + $ref: /schemas/usb/usb-device.yaml On this level: unevaluatedProperties: false > + > +required: > + - compatible > + - '#address-cells' > + - '#size-cells' Use one type of quotes, either ' or ". > + - port > + > +additionalProperties: false > + > +examples: > + - | > + connector { > + compatible = "google,pogo-pin-connector"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + keyboard@2 { > + compatible = "usb18d1,504c"; Messed indentation. > + reg = <2>; > + }; > + Best regards, Krzysztof
Hi, On Fri, Feb 9, 2024 at 11:10 PM Stephen Boyd <swboyd@chromium.org> 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. Can you remind me what the side effects would be if a different VID/PID shows up there? I know it's not an end-user scenario, but I have a pre-production "coachz" keyboard that's actually programmed incorrectly and shows up as the wrong PID. Presumably I could either throw the old hardware away or figure out a way to re-program it and it's really not a big deal, but just curious what happens... -Doug
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.
Quoting Doug Anderson (2024-02-13 17:17:34) > Hi, > > On Fri, Feb 9, 2024 at 11:10 PM Stephen Boyd <swboyd@chromium.org> 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. > > Can you remind me what the side effects would be if a different > VID/PID shows up there? I know it's not an end-user scenario, but I > have a pre-production "coachz" keyboard that's actually programmed > incorrectly and shows up as the wrong PID. Presumably I could either > throw the old hardware away or figure out a way to re-program it and > it's really not a big deal, but just curious what happens... As far as I know nothing happens besides ChromeOS userspace treats the keyboard as "external" so things like smarter base detection, e.g. wraparound keyboard detection or kickstand mode, may not work. I think you get a popup box telling you the keyboard isn't the trusted one.
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
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@chromium.org> + +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>; + }; + }; + }; + +...