Message ID | 20230619143611.24482-2-clamor95@gmail.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp3055141vqr; Mon, 19 Jun 2023 07:45:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6nLj9Xmzzmq+L5Seu0rt32AOa8Y8mscii5ODdB/knlk+kBkdLgAY2bChi00lclKNinXywg X-Received: by 2002:a05:6a21:999d:b0:120:6b8e:9033 with SMTP id ve29-20020a056a21999d00b001206b8e9033mr3069794pzb.22.1687185955044; Mon, 19 Jun 2023 07:45:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687185955; cv=none; d=google.com; s=arc-20160816; b=KY2lypJKddgJ4ZzvHWrCQhQIYw2HQ1+c7JxqaWKipc5mY+mVMiTmLCoVKK8MbJI65S PqvKSx9i4xfDJkv+liaDefccGGkaQKp63knIQUIs1AM8i5+18LNF5q0Ix8tzJ09mGYos RpNPhPoeTwNEX8z5W4hp05dyZ2s02bxN8Es5C9S5p5KPT0EpoD7CeQsJ/ds+1QiitqeD dGj/+PeyUntL3bkFI685ScdM/QFEot4bqEvrbKEYhf2i8gz7z883HDSGmPp88Mgwc6JY O9p+hYZuAEL6qeOZsRHoSgFAYc9N+rYZYDjWkw9ddV70UT0bEkDcGXBeh3Mnweb/ZbEO ThAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=/M63MWzXEsAPQQsl++H6/LS5VBcI5JHI6IsyHetoStA=; b=WAG2ae+euPIyFGhtP5omZHChGLPhuhQBa1Tv2fldUKOO7QPwFepknaq+kdGgvOuHQq J53Uvcm4x1MUEBN6fAlSUMA+mQOHSLG0uJphvgjtN91ZgcY78Lz0/5oTzuhKhj9ekgJ4 fPRg09dsCCVA0tlBA8t7KYUWPSvLYMUwIXA9CE3aHllrhMQ4UusY9CtplcfkcWDoQlbM 1Rhl7641YkDs9447jyLC4R6rTteVz8UIFnw4bbOT2qBzwNC6TBX4PNojgzG0qq7h3XAa G20itT9sE1O9VAqwLPgRFsKCzj6xrEmDhKrVAGwYyX7FA02Qq+Q3x6ICg9NFK+2OArcm 3EzQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=dnvgDHuN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h190-20020a6383c7000000b005538a669b5fsi5889381pge.212.2023.06.19.07.45.39; Mon, 19 Jun 2023 07:45:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=dnvgDHuN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231488AbjFSOgj (ORCPT <rfc822;duw91626@gmail.com> + 99 others); Mon, 19 Jun 2023 10:36:39 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38036 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230510AbjFSOge (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 19 Jun 2023 10:36:34 -0400 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD8D8124; Mon, 19 Jun 2023 07:36:32 -0700 (PDT) Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-51a4044b7a1so4393444a12.2; Mon, 19 Jun 2023 07:36:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687185391; x=1689777391; 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=/M63MWzXEsAPQQsl++H6/LS5VBcI5JHI6IsyHetoStA=; b=dnvgDHuNRmwTy7om3tVZfA8WHSmaWcORJLS3TnLlPQjuhiJjeB3jsycakvCuVrnZs3 V6cF/LdR5VErjtUSk+iQuU2fUhajGAD7ySGJ6v2yHJz1QIYwf0Y1VITwbOjh64pgxETV NMLqQ+Tj15hVcsULfD594EeP9r9AmyYrCSidAhPNWaH7HVJlG/u41W+0VJ11pIUWqSau Z8u1S+6qpRr6zovdfeQa4gh8bg8mwKAF+YQ02XfIxi48lYeeCCHpzhO3Yi71tZMO+sjT q3vlg6mYYOfo8pc5ENlsyYY2T5dFnO2PtAvH8l9lDT5x0PWpnp/FwlozfEaBW9wsQgIb CtuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687185391; x=1689777391; 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=/M63MWzXEsAPQQsl++H6/LS5VBcI5JHI6IsyHetoStA=; b=gG9hPKQydhiU8f8h4SV73tqSdm/wjR9Btdyj6Zch7qfKUOLIztPEM0CO3+MnyCdHxm C5iWUTS8r6aE5xL/VcPTygmRBhGmoYDLY/OsxeHwhonSjNqRlwdF7pYElRS0tAS+7xp0 0JVP3or16ao0l7NddcelaXRTIgcTdTgPSkDrWnIH9V0tlWFzJp+TPszEpsj9Rjfd21OZ A1WY5TJp878oefM9J+gaU8EwIXuyubSoudJscGlZhIfaav0mx5eQrhjG1aL+mswJgSYX c+1nJFBz1l2caGQLqYIXW+KW02RkqrdZ9Iz+TsAKU47Qsj4AGbHucoezydGiPFNN+nDg HXiw== X-Gm-Message-State: AC+VfDw5UJlrVrPzCnboknCcNXWGOrFMbsSm6w1+XlobJ78t64HUsOaI bRzKNjgd/FhTRS8eZyWvq/Q= X-Received: by 2002:a05:6402:706:b0:51a:60b2:7fbe with SMTP id w6-20020a056402070600b0051a60b27fbemr1090107edx.32.1687185391076; Mon, 19 Jun 2023 07:36:31 -0700 (PDT) Received: from xeon.. ([188.163.112.79]) by smtp.gmail.com with ESMTPSA id r13-20020aa7d58d000000b00514b2a9ce60sm13073283edq.81.2023.06.19.07.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Jun 2023 07:36:30 -0700 (PDT) From: Svyatoslav Ryhel <clamor95@gmail.com> To: Andi Shyti <andi.shyti@kernel.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Wolfram Sang <wsa@kernel.org>, =?utf-8?b?TWljaGHFgiBNaXJvc8WCYXc=?= <mirq-linux@rere.qmqm.pl>, Svyatoslav Ryhel <clamor95@gmail.com> Cc: linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 1/2] dt-bindings: i2c: add binding for i2c-hotplug-gpio Date: Mon, 19 Jun 2023 17:36:10 +0300 Message-Id: <20230619143611.24482-2-clamor95@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230619143611.24482-1-clamor95@gmail.com> References: <20230619143611.24482-1-clamor95@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769142700072318670?= X-GMAIL-MSGID: =?utf-8?q?1769142700072318670?= |
Series |
GPIO-based hotplug i2c bus
|
|
Commit Message
Svyatoslav Ryhel
June 19, 2023, 2:36 p.m. UTC
Document device tree schema which describes hot-pluggable via GPIO
i2c bus.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
.../bindings/i2c/i2c-hotplug-gpio.yaml | 68 +++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml
Comments
On 19/06/2023 16:36, Svyatoslav Ryhel wrote: > Document device tree schema which describes hot-pluggable via GPIO > i2c bus. > > Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> > --- > .../bindings/i2c/i2c-hotplug-gpio.yaml | 68 +++++++++++++++++++ > 1 file changed, 68 insertions(+) > create mode 100644 Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > new file mode 100644 > index 000000000000..74544687a2b8 > --- /dev/null > +++ b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > @@ -0,0 +1,68 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/i2c/i2c-hotplug-gpio.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: GPIO detected hot-plugged I2C bus > + > +maintainers: > + - Michał Mirosław <mirq-linux@rere.qmqm.pl> > + > +description: | Do not need '|' unless you need to preserve formatting. > + Driver for hot-plugged I2C busses, where some devices on a bus > + are hot-pluggable and their presence is indicated by GPIO line. > + > +properties: > + $nodename: > + pattern: "^i2c-(.*)?" Drop > + > + compatible: > + items: > + - const: i2c-hotplug-gpio > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + interrupts-extended: > + minItems: 1 > + > + detect-gpios: > + maxItems: 1 > + > + i2c-parent: > + maxItems: 1 I don't understand this part. You built it as a complimentary device to the I2C controller, but there is no such device as "hotplug I2C", right? The GPIO is part of the controller and this is imaginary (virtual) device? Otherwise, where does the "detect-gpios" go? To the SoC? Then it is not a real device... > + > +required: > + - compatible > + - "#address-cells" > + - "#size-cells" Use consistent quotes (' or "). > + - interrupts-extended > + - detect-gpios > + - i2c-parent > + > +unevaluatedProperties: false > + > +examples: > + - | > + /* > + * Asus Transformers use I2C hotplug for attachable dock keyboard > + */ > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + i2c-dock { > + compatible = "i2c-hotplug-gpio"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + interrupts-extended = <&gpio 164 IRQ_TYPE_EDGE_BOTH>; > + detect-gpios = <&gpio 164 1>; You forgot define. > + > + i2c-parent = <&{/i2c@7000c400}>; Use normal phandles/labels like entire DTS, not full paths or node names. > + }; > +... Best regards, Krzysztof
пн, 19 черв. 2023 р. о 17:45 Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> пише: > > On 19/06/2023 16:36, Svyatoslav Ryhel wrote: > > Document device tree schema which describes hot-pluggable via GPIO > > i2c bus. > > > > Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> > > --- > > .../bindings/i2c/i2c-hotplug-gpio.yaml | 68 +++++++++++++++++++ > > 1 file changed, 68 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > > > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > > new file mode 100644 > > index 000000000000..74544687a2b8 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > > @@ -0,0 +1,68 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/i2c/i2c-hotplug-gpio.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: GPIO detected hot-plugged I2C bus > > + > > +maintainers: > > + - Michał Mirosław <mirq-linux@rere.qmqm.pl> > > + > > +description: | > > Do not need '|' unless you need to preserve formatting. > > > + Driver for hot-plugged I2C buses, where some devices on a bus > > + are hot-pluggable and their presence is indicated by GPIO line. > > + > > +properties: > > + $nodename: > > + pattern: "^i2c-(.*)?" > > Drop > > > + > > + compatible: > > + items: > > + - const: i2c-hotplug-gpio > > + > > + '#address-cells': > > + const: 1 > > + > > + '#size-cells': > > + const: 0 > > + > > + interrupts-extended: > > + minItems: 1 > > + > > + detect-gpios: > > + maxItems: 1 > > + > > + i2c-parent: > > + maxItems: 1 > > I don't understand this part. You built it as a complimentary device to > the I2C controller, but there is no such device as "hotplug I2C", right? > The GPIO is part of the controller and this is imaginary (virtual) device? > > Otherwise, where does the "detect-gpios" go? To the SoC? Then it is not > a real device... > This is basically GPIO controlled i2c bus duplication. Transformer has 2 ECs, one for pad and one for dock. They both are present on the i2c bus, but the dock is not always present. Its presence is determined by a GPIO. Once a dock is present, GPIO triggers bus duplication and all devices described on that bus are probed, same when detaching the dock. Detecting GPIO and interrupt GPIO is the same GPIO. > > + > > +required: > > + - compatible > > + - "#address-cells" > > + - "#size-cells" > > Use consistent quotes (' or "). > > > + - interrupts-extended > > + - detect-gpios > > + - i2c-parent > > + > > +unevaluatedProperties: false > > + > > +examples: > > + - | > > + /* > > + * Asus Transformers use I2C hotplug for attachable dock keyboard > > + */ > > + #include <dt-bindings/gpio/gpio.h> > > + #include <dt-bindings/interrupt-controller/irq.h> > > + > > + i2c-dock { > > + compatible = "i2c-hotplug-gpio"; > > + > > + #address-cells = <1>; > > + #size-cells = <0>; > > + > > + interrupts-extended = <&gpio 164 IRQ_TYPE_EDGE_BOTH>; > > + detect-gpios = <&gpio 164 1>; > > You forgot define. > Define GPIO name or high/low? May you specify? Best regards, Svyatoslav R. > > + > > + i2c-parent = <&{/i2c@7000c400}>; > > Use normal phandles/labels like entire DTS, not full paths or node names. > > > + }; > > +... > > Best regards, > Krzysztof >
On Mon, 19 Jun 2023 17:36:10 +0300, Svyatoslav Ryhel wrote: > Document device tree schema which describes hot-pluggable via GPIO > i2c bus. > > Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> > --- > .../bindings/i2c/i2c-hotplug-gpio.yaml | 68 +++++++++++++++++++ > 1 file changed, 68 insertions(+) > create mode 100644 Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: FATAL ERROR: Can't generate fixup for reference to path &{/i2c@7000c400} make[1]: *** [scripts/Makefile.lib:419: Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.example.dtb] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:1512: dt_binding_check] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230619143611.24482-2-clamor95@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
diff --git a/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml new file mode 100644 index 000000000000..74544687a2b8 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-hotplug-gpio.yaml @@ -0,0 +1,68 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-hotplug-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: GPIO detected hot-plugged I2C bus + +maintainers: + - Michał Mirosław <mirq-linux@rere.qmqm.pl> + +description: | + Driver for hot-plugged I2C busses, where some devices on a bus + are hot-pluggable and their presence is indicated by GPIO line. + +properties: + $nodename: + pattern: "^i2c-(.*)?" + + compatible: + items: + - const: i2c-hotplug-gpio + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + interrupts-extended: + minItems: 1 + + detect-gpios: + maxItems: 1 + + i2c-parent: + maxItems: 1 + +required: + - compatible + - "#address-cells" + - "#size-cells" + - interrupts-extended + - detect-gpios + - i2c-parent + +unevaluatedProperties: false + +examples: + - | + /* + * Asus Transformers use I2C hotplug for attachable dock keyboard + */ + #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/interrupt-controller/irq.h> + + i2c-dock { + compatible = "i2c-hotplug-gpio"; + + #address-cells = <1>; + #size-cells = <0>; + + interrupts-extended = <&gpio 164 IRQ_TYPE_EDGE_BOTH>; + detect-gpios = <&gpio 164 1>; + + i2c-parent = <&{/i2c@7000c400}>; + }; +...