From patchwork Sat Jul 22 09:57:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 124265 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp729225vqg; Sat, 22 Jul 2023 03:33:55 -0700 (PDT) X-Google-Smtp-Source: APBJJlEtElrnNrQdXzSfXAop42NeQ/qANE0SBS1GkQ+sS2SItJa4uQEsNNY3roFja2x3byvhLkYu X-Received: by 2002:a05:6a20:186:b0:137:7198:af9b with SMTP id 6-20020a056a20018600b001377198af9bmr3571269pzy.56.1690022035202; Sat, 22 Jul 2023 03:33:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690022035; cv=none; d=google.com; s=arc-20160816; b=JHaHm+qn6PhGAqP05kqEOooE8WNOeaqdlFm+8UPOIA2cu+UzTF0+pTBxSy6hXut9jx 2TY67joFkVSGE9yxeyahOnrOMpuTHtC7VJgx4EOTSeseeruJ8DL5gkIp1PWVQB+beKkl mM9iyhXa//Wn0JCje9Z2oRS97fw6GaaycQ14HrBFQnrJQ5qokC0lA591uJ8AluAeOtvG ASXuVAsFD5Taw9uDzp4CsI3/yYhaP5u2LKePZoe7U7gY2r20nXSaROZaOFaf7UASJ/8x LI/O5opdzty8DbX3gkoFF0RH/gF3Hyvzu/yUmSDomx69ZXuNctG8SVHKvdYLz2fiR5he FBhA== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=nyKDRJkgNpqdQ6Lp+ez6Jz58IxlTBjt/lNLl3Cr0hHU=; fh=LNN21mjFsaCCmFqoPd5gCMC37neUs9nRKEzt0YbBhto=; b=mNS5k4nRXiiDID+7ehFRTPfzft4Lg7eC/d6kM5RcOwqRDBL5+R+ozQgQH5Nw++/mNU GXly6yROPbkg555vwb748mxcCe+JogVsFm0EiCojerxsSNfiewTUrnSunQjN4KytrlgY ZEstXG3FwQjGEHOHuztL+1L7GACpPW6bHC966yNGpjK5+wNxXPOf0mRdV+b5o2DXpski SNAPLVJcRQpkZffLktX6PUoCFV/mcayDtX0JIYPoOdQnkIfU6ce/en+kwne3szsb3Mao Zm3Q87MJ8gkhvb6LTG/l7cfhx2lX5LZO+0l6QkDI1crqcwCEL/oikkwrB8MUyCCOT5nU JKtA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=C8xl8o0H; 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=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id kz13-20020a170902f9cd00b001b8ae9058d3si4590343plb.516.2023.07.22.03.33.42; Sat, 22 Jul 2023 03:33: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=@linaro.org header.s=google header.b=C8xl8o0H; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230077AbjGVJ5S (ORCPT + 99 others); Sat, 22 Jul 2023 05:57:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34390 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229643AbjGVJ5Q (ORCPT ); Sat, 22 Jul 2023 05:57:16 -0400 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80CF5E5B for ; Sat, 22 Jul 2023 02:57:15 -0700 (PDT) Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-992af8b3b1bso438924266b.1 for ; Sat, 22 Jul 2023 02:57:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1690019834; x=1690624634; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=nyKDRJkgNpqdQ6Lp+ez6Jz58IxlTBjt/lNLl3Cr0hHU=; b=C8xl8o0HfyCAiQQy6sXroqvzsUsViienqWCv2AcFrVv5AY1NcoPPAxw+7+N5C/pImo W90Ytyx+k/Vo+H0wt0kIRU3OQBFZejUG2uwTwSq6HjzPtP+sBdoLL0oR5DQYVtxLO9jB 2EPeFj+KL187+y4RECG2MTuezhuQoTWLmlhyPjocjGHV3L0S62TEBAaEbfJ9RDg95zbC dySg9y+MdoROytCaZe+KJYhMyUHVnhFewjMuATJWPC6WjpO0TS7tk6dEpLxW5sx95O7O So3ILWLnRxDtE3MlL81UT9ccb9feADdUOVp2+eENGiOOBjYLGPNToNNUcma9C/Y2zkF5 f7dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690019834; x=1690624634; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=nyKDRJkgNpqdQ6Lp+ez6Jz58IxlTBjt/lNLl3Cr0hHU=; b=dw5PhYbG3e1kTs8r66l1u9nxJDuiAS3BqR+5NovCTMGMyG5x9/enDg2LjdjH77heYx UOqC3HU8qBOixwmv1349vgKpS1tnKk0e9P+ieMFdKbdtmMeZjExjcqvQ/ao6YipRYsFe tOsjpagnyjg1Aed60CGYFZwcu2jum/KA6yP7Y5OJ9HBzcBeieZy+9Lk5TgP3y75R7AsF yY1hwnX2gGNMTTUrTNjdMdHj6n3HqqoaHT7nFMQLC12fSKHa2CBHe2lUE+V57vjILztb cdP7D2qjlo92cuY77BtowK+MmTn4MMhV2nPxj/sNfwnkDtU3UXC9OgO69jJwIagyhdEA Xu1w== X-Gm-Message-State: ABy/qLbrzvmDrnFLTPNRxp5seWJszwzjeEH7qQuYlJb7jEah0fnTEZu8 aNv4ZllagyEyKaKTRAToXOz1EUJk7wEk4JaIKI4= X-Received: by 2002:a17:906:74d6:b0:993:e695:b589 with SMTP id z22-20020a17090674d600b00993e695b589mr3747344ejl.20.1690019833926; Sat, 22 Jul 2023 02:57:13 -0700 (PDT) Received: from krzk-bin.. ([178.197.223.104]) by smtp.gmail.com with ESMTPSA id d12-20020a17090648cc00b00992b7ff3993sm3281038ejt.126.2023.07.22.02.57.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Jul 2023 02:57:13 -0700 (PDT) From: Krzysztof Kozlowski To: Peter Rosin , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Doug Anderson , linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 1/2] dt-bindings: i2c: nxp,pca9541: convert to DT schema Date: Sat, 22 Jul 2023 11:57:09 +0200 Message-Id: <20230722095710.17496-1-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772116545535472597 X-GMAIL-MSGID: 1772116545535472597 Convert the bindings for NXP PCA9541 I2C bus master selector to DT schema. Signed-off-by: Krzysztof Kozlowski Acked-by: Peter Rosin Reviewed-by: Conor Dooley Acked-by: Andi Shyti --- Changes in v2: 1. New patch (Doug) --- .../devicetree/bindings/i2c/nxp,pca9541.txt | 29 ---------- .../devicetree/bindings/i2c/nxp,pca9541.yaml | 56 +++++++++++++++++++ 2 files changed, 56 insertions(+), 29 deletions(-) delete mode 100644 Documentation/devicetree/bindings/i2c/nxp,pca9541.txt create mode 100644 Documentation/devicetree/bindings/i2c/nxp,pca9541.yaml diff --git a/Documentation/devicetree/bindings/i2c/nxp,pca9541.txt b/Documentation/devicetree/bindings/i2c/nxp,pca9541.txt deleted file mode 100644 index 42bfc09c8918..000000000000 --- a/Documentation/devicetree/bindings/i2c/nxp,pca9541.txt +++ /dev/null @@ -1,29 +0,0 @@ -* NXP PCA9541 I2C bus master selector - -Required Properties: - - - compatible: Must be "nxp,pca9541" - - - reg: The I2C address of the device. - - The following required properties are defined externally: - - - I2C arbitration bus node. See i2c-arb.txt in this directory. - - -Example: - - i2c-arbitrator@74 { - compatible = "nxp,pca9541"; - reg = <0x74>; - - i2c-arb { - #address-cells = <1>; - #size-cells = <0>; - - eeprom@54 { - compatible = "atmel,24c08"; - reg = <0x54>; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/i2c/nxp,pca9541.yaml b/Documentation/devicetree/bindings/i2c/nxp,pca9541.yaml new file mode 100644 index 000000000000..b65c25c1a435 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/nxp,pca9541.yaml @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/nxp,pca9541.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP PCA9541 I2C bus master selector + +maintainers: + - Peter Rosin + +properties: + compatible: + const: nxp,pca9541 + + reg: + maxItems: 1 + + i2c-arb: + type: object + $ref: /schemas/i2c/i2c-controller.yaml + unevaluatedProperties: false + description: + I2C arbitration bus node. + +required: + - compatible + - reg + - i2c-arb + +additionalProperties: false + +examples: + - | + #include + #include + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + i2c-arbitrator@74 { + compatible = "nxp,pca9541"; + reg = <0x74>; + + i2c-arb { + #address-cells = <1>; + #size-cells = <0>; + + eeprom@54 { + compatible = "atmel,24c08"; + reg = <0x54>; + }; + }; + }; + }; From patchwork Sat Jul 22 09:57:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzysztof Kozlowski X-Patchwork-Id: 124266 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp746162vqg; Sat, 22 Jul 2023 04:18:39 -0700 (PDT) X-Google-Smtp-Source: APBJJlFpACcMXbTsAEqhx4eeFt4z4eLsrziQTG57zG5GDbaC5CLpdlsVsDr3JPOxr2NgNVgDXTUD X-Received: by 2002:a17:907:270e:b0:988:bb33:53b7 with SMTP id w14-20020a170907270e00b00988bb3353b7mr4143548ejk.60.1690024718838; Sat, 22 Jul 2023 04:18:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690024718; cv=none; d=google.com; s=arc-20160816; b=H/HI6/mgq+lwRNXuVQbyBKuSjuN7klJQbLTpcfVBjzlHFcR+pycR/1XOElyM/qoeym p2GK7vHM0qaNIpC+SU2Rl+3xMnoyz0ZhQ20MjtYTGUJvp9268A40udOLyusuk3DNx2Ap 97OinK2B5s6ZcryttwqElmuukcoYSVxxGJ9+QVKNgPPMpdnvHKnHtA1Fw20LOXFI7N76 PlhUtWFqD6KlfA4BNtZ8luZsJZiI08Alz2Pual+tSib8Pymo7PwA1Ovspot9YqXLHqDn lD/d3j+LyTgC/8jIU7+Qr7HoMraE3MLWlIFuRd2QmbKW4H0kG+bKsIEhBkRQ3bL80wqA 5n+w== 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=woFGdxs67jlM9TolmaMHkh2hVrHZae/JREG4F0Tldjs=; fh=LNN21mjFsaCCmFqoPd5gCMC37neUs9nRKEzt0YbBhto=; b=Z2PrF2D9dDlvT3/awB7jsDW7IpRA06j4eWuZgUYEHwtOIaSxA8rMJXBcc1UK0yB+Cr SebhUYy7wGEu5TOAFahGS74Dpfz1mNNxcI17xW3AItal0Ms/HzuyVJxRgNUxi1TbYXXE RMOp0cSEogT1BRbpuCmCGKEDV4uwUz2cw7krJA7+fHETzGVWJuH7sHddgOlgjYMvfv2I QfhnPY+ypIWhyOMMS60Cq3wbK5CQTRNkvz4PmEaMDFS5aiHmOcln7GCFzfYa0AeQnHxW x5RHEiYbdw5sqAzYRaMR+P38Ji3aILFPb93kjEFMvUb1mZmOxSC2Bcq5VE3piU/gUgyq hHVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rHT92357; 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=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id sb27-20020a170906eddb00b0098eeb136963si3281323ejb.172.2023.07.22.04.18.15; Sat, 22 Jul 2023 04:18:38 -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=@linaro.org header.s=google header.b=rHT92357; 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=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230094AbjGVJ5X (ORCPT + 99 others); Sat, 22 Jul 2023 05:57:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230108AbjGVJ5T (ORCPT ); Sat, 22 Jul 2023 05:57:19 -0400 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9CC410DE for ; Sat, 22 Jul 2023 02:57:16 -0700 (PDT) Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-9936b3d0286so444086566b.0 for ; Sat, 22 Jul 2023 02:57:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1690019835; x=1690624635; 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=woFGdxs67jlM9TolmaMHkh2hVrHZae/JREG4F0Tldjs=; b=rHT92357naLfyIvlUABWxIna5SLJFAluExAXbwKDVyDgIdrbVckRvqwTKDOni4CPT+ YWzleJ20spX7sevP+hGBlldGXWdh+zyNYcSAwhDaCssHi2cUcGu48N/VvW+h8L5A7mFX xafH6BOnDA7cFuC6NVPtV21KcwlF3NFpjnWflcml/02+p3BGihvqRwTniLFtXtshHWBC Q4W3K2AiWT8rKEK8Zcw1/UfPX9Btln7wZcEn2AoMdm9n8xzMpHFjgTxl2SHjVhCN/x2F mngFw8Ylm6OdUk0CFnb3/mBVtMZiLSLWR3TrpNM/VjLigngH0Ev6qT3nm3E9M8/aXCBR liyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690019835; x=1690624635; 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=woFGdxs67jlM9TolmaMHkh2hVrHZae/JREG4F0Tldjs=; b=ZiwyFsnsbKo0eMFdADMj6YhylowOHJzV5cuCnSy/wFCC2Pnr74bnW2w/3iVUBYA6b0 a81puHr2+hkn/UDCBDEM2V85UDSlzBnhCG0MvqoQSCoWpVRTZM12pFbl+gOty9X5iY/V FDE2efkxBlKr0t0jBjiyJ7rrAhgD+cgQzzfa7VPtU1Zhcn6WrHtnZ/wIQPjNHyIH5ez6 iCTI50/cyyiYgu+mLe95T9RnbcAICFY2RTblRxbnMxcHtZ6RW5I80dSVmX9TMnNzhXSi o4FxzYDuzOHzaIfYsJGUgmNfSX1rw/Spy3Lv5Cfghq7U2a7lIfqkbnX/ZGDeMgFhZgv7 ajvA== X-Gm-Message-State: ABy/qLa3sHfSwfZCjh3illqkUHq4GXfj0fH5LMh52OQ3LqTRpB1Xxbi3 c8bEBN6n3hmZQ9F5DOM+bENd/g== X-Received: by 2002:a17:906:3f1e:b0:99b:504d:d9c7 with SMTP id c30-20020a1709063f1e00b0099b504dd9c7mr4313666ejj.67.1690019835200; Sat, 22 Jul 2023 02:57:15 -0700 (PDT) Received: from krzk-bin.. ([178.197.223.104]) by smtp.gmail.com with ESMTPSA id d12-20020a17090648cc00b00992b7ff3993sm3281038ejt.126.2023.07.22.02.57.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 22 Jul 2023 02:57:14 -0700 (PDT) From: Krzysztof Kozlowski To: Peter Rosin , Andi Shyti , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Doug Anderson , linux-i2c@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Krzysztof Kozlowski Subject: [PATCH 2/2] dt-bindings: i2c: arb-gpio-challange: convert to DT schema Date: Sat, 22 Jul 2023 11:57:10 +0200 Message-Id: <20230722095710.17496-2-krzysztof.kozlowski@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230722095710.17496-1-krzysztof.kozlowski@linaro.org> References: <20230722095710.17496-1-krzysztof.kozlowski@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=unavailable 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772119359477707187 X-GMAIL-MSGID: 1772119359477707187 Convert the bindings for GPIO-based I2C Arbitration Using a Challenge & Response Mechanism to DT schema. Signed-off-by: Krzysztof Kozlowski Acked-by: Douglas Anderson --- The text of original bindings was written by Doug, so please kindly ack if you agree to relicense it from GPL-2 to (GPL-2.0-only OR BSD-2-Clause). Changes in v2: 1. Drop i2c-controller $ref in top-level part, because only children are I2C controllers. 2. Add Ack. --- .../bindings/i2c/i2c-arb-gpio-challenge.txt | 82 ----------- .../bindings/i2c/i2c-arb-gpio-challenge.yaml | 135 ++++++++++++++++++ .../devicetree/bindings/i2c/i2c-arb.txt | 35 ----- 3 files changed, 135 insertions(+), 117 deletions(-) delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt create mode 100644 Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.yaml delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-arb.txt diff --git a/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt b/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt deleted file mode 100644 index 548a73cde796..000000000000 --- a/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.txt +++ /dev/null @@ -1,82 +0,0 @@ -GPIO-based I2C Arbitration Using a Challenge & Response Mechanism -================================================================= -This uses GPIO lines and a challenge & response mechanism to arbitrate who is -the master of an I2C bus in a multimaster situation. - -In many cases using GPIOs to arbitrate is not needed and a design can use -the standard I2C multi-master rules. Using GPIOs is generally useful in -the case where there is a device on the bus that has errata and/or bugs -that makes standard multimaster mode not feasible. - -Note that this scheme works well enough but has some downsides: -* It is nonstandard (not using standard I2C multimaster) -* Having two masters on a bus in general makes it relatively hard to debug - problems (hard to tell if i2c issues were caused by one master, another, or - some device on the bus). - - -Algorithm: - -All masters on the bus have a 'bus claim' line which is an output that the -others can see. These are all active low with pull-ups enabled. We'll -describe these lines as: - -- OUR_CLAIM: output from us signaling to other hosts that we want the bus -- THEIR_CLAIMS: output from others signaling that they want the bus - -The basic algorithm is to assert your line when you want the bus, then make -sure that the other side doesn't want it also. A detailed explanation is best -done with an example. - -Let's say we want to claim the bus. We: -1. Assert OUR_CLAIM. -2. Waits a little bit for the other sides to notice (slew time, say 10 - microseconds). -3. Check THEIR_CLAIMS. If none are asserted then the we have the bus and we are - done. -4. Otherwise, wait for a few milliseconds and see if THEIR_CLAIMS are released. -5. If not, back off, release the claim and wait for a few more milliseconds. -6. Go back to 1 (until retry time has expired). - - -Required properties: -- compatible: i2c-arb-gpio-challenge -- our-claim-gpio: The GPIO that we use to claim the bus. -- their-claim-gpios: The GPIOs that the other sides use to claim the bus. - Note that some implementations may only support a single other master. -- I2C arbitration bus node. See i2c-arb.txt in this directory. - -Optional properties: -- slew-delay-us: microseconds to wait for a GPIO to go high. Default is 10 us. -- wait-retry-us: we'll attempt another claim after this many microseconds. - Default is 3000 us. -- wait-free-us: we'll give up after this many microseconds. Default is 50000 us. - - -Example: - i2c@12ca0000 { - compatible = "acme,some-i2c-device"; - #address-cells = <1>; - #size-cells = <0>; - }; - - i2c-arbitrator { - compatible = "i2c-arb-gpio-challenge"; - - i2c-parent = <&{/i2c@12CA0000}>; - - our-claim-gpio = <&gpf0 3 1>; - their-claim-gpios = <&gpe0 4 1>; - slew-delay-us = <10>; - wait-retry-us = <3000>; - wait-free-us = <50000>; - - i2c-arb { - #address-cells = <1>; - #size-cells = <0>; - - i2c@52 { - // Normal I2C device - }; - }; - }; diff --git a/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.yaml b/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.yaml new file mode 100644 index 000000000000..5bf6ce14c2dc --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-arb-gpio-challenge.yaml @@ -0,0 +1,135 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-arb-gpio-challenge.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: GPIO-based I2C Arbitration Using a Challenge & Response Mechanism + +maintainers: + - Doug Anderson + - Peter Rosin + +description: | + This uses GPIO lines and a challenge & response mechanism to arbitrate who is + the master of an I2C bus in a multimaster situation. + + In many cases using GPIOs to arbitrate is not needed and a design can use the + standard I2C multi-master rules. Using GPIOs is generally useful in the case + where there is a device on the bus that has errata and/or bugs that makes + standard multimaster mode not feasible. + + Note that this scheme works well enough but has some downsides: + * It is nonstandard (not using standard I2C multimaster) + * Having two masters on a bus in general makes it relatively hard to debug + problems (hard to tell if i2c issues were caused by one master, another, + or some device on the bus). + + Algorithm: + All masters on the bus have a 'bus claim' line which is an output that the + others can see. These are all active low with pull-ups enabled. We'll + describe these lines as: + * OUR_CLAIM: output from us signaling to other hosts that we want the bus + * THEIR_CLAIMS: output from others signaling that they want the bus + + The basic algorithm is to assert your line when you want the bus, then make + sure that the other side doesn't want it also. A detailed explanation is + best done with an example. + + Let's say we want to claim the bus. We: + 1. Assert OUR_CLAIM. + 2. Waits a little bit for the other sides to notice (slew time, say 10 + microseconds). + 3. Check THEIR_CLAIMS. If none are asserted then the we have the bus and we + are done. + 4. Otherwise, wait for a few milliseconds and see if THEIR_CLAIMS are released. + 5. If not, back off, release the claim and wait for a few more milliseconds. + 6. Go back to 1 (until retry time has expired). + +properties: + compatible: + const: i2c-arb-gpio-challenge + + i2c-parent: + $ref: /schemas/types.yaml#/definitions/phandle + description: + The I2C bus that this multiplexer's master-side port is connected to. + + our-claim-gpios: + maxItems: 1 + description: + The GPIO that we use to claim the bus. + + slew-delay-us: + default: 10 + description: + Time to wait for a GPIO to go high. + + their-claim-gpios: + minItems: 1 + maxItems: 2 + description: + The GPIOs that the other sides use to claim the bus. Note that some + implementations may only support a single other master. + + wait-free-us: + default: 50000 + description: + We'll give up after this many microseconds. + + wait-retry-us: + default: 3000 + description: + We'll attempt another claim after this many microseconds. + + i2c-arb: + type: object + $ref: /schemas/i2c/i2c-controller.yaml + unevaluatedProperties: false + description: + I2C arbitration bus node. + +required: + - compatible + - i2c-arb + - our-claim-gpios + - their-claim-gpios + +additionalProperties: false + +examples: + - | + #include + #include + + i2c-arbitrator { + compatible = "i2c-arb-gpio-challenge"; + i2c-parent = <&i2c_4>; + + our-claim-gpios = <&gpf0 3 GPIO_ACTIVE_LOW>; + their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>; + slew-delay-us = <10>; + wait-retry-us = <3000>; + wait-free-us = <50000>; + + i2c-arb { + #address-cells = <1>; + #size-cells = <0>; + + sbs-battery@b { + compatible = "sbs,sbs-battery"; + reg = <0xb>; + sbs,poll-retry-count = <1>; + }; + + embedded-controller@1e { + compatible = "google,cros-ec-i2c"; + reg = <0x1e>; + interrupts = <6 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&gpx1>; + pinctrl-names = "default"; + pinctrl-0 = <&ec_irq>; + wakeup-source; + }; + }; + }; diff --git a/Documentation/devicetree/bindings/i2c/i2c-arb.txt b/Documentation/devicetree/bindings/i2c/i2c-arb.txt deleted file mode 100644 index 59abf9277bdc..000000000000 --- a/Documentation/devicetree/bindings/i2c/i2c-arb.txt +++ /dev/null @@ -1,35 +0,0 @@ -Common i2c arbitration bus properties. - -- i2c-arb child node - -Required properties for the i2c-arb child node: -- #address-cells = <1>; -- #size-cells = <0>; - -Optional properties for i2c-arb child node: -- Child nodes conforming to i2c bus binding - - -Example : - - /* - An NXP pca9541 I2C bus master selector at address 0x74 - with a NXP pca8574 GPIO expander attached. - */ - - arb@74 { - compatible = "nxp,pca9541"; - reg = <0x74>; - - i2c-arb { - #address-cells = <1>; - #size-cells = <0>; - - gpio@38 { - compatible = "nxp,pca8574"; - reg = <0x38>; - #gpio-cells = <2>; - gpio-controller; - }; - }; - };