From patchwork Tue May 18 23:28:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 441251 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp712702jac; Tue, 18 May 2021 16:29:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwJUNUDWA145Q/TQESo7cjHib6lsjzfMJSKNF/qJExx+o/vOc3Y0cG2KYk8iUGRleFVGTOr X-Received: by 2002:a17:906:2596:: with SMTP id m22mr8726776ejb.175.1621380544600; Tue, 18 May 2021 16:29:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621380544; cv=none; d=google.com; s=arc-20160816; b=fU4VkCsdzDC8cvtoLgMp+SHv/9eNPAoRRY/tw/pSGKaRPRH60KC61hCqO2WO+QFcJg mFqoxKVmrHurjWBHrPHXPf9ljg+wdZOHAAcX469Fl9/ht8ZlZP62e83RisECHVTzYnrM Rzi63NaGobALFhkyeIYE30/8gRyx2OfasERC3NTR/AsDrXXC+JBPi9i9ipro0iFjKZYR axl8D2OX3qBzhKRv+puM7WEoctLm2R7clMzBNVcNGhXpmq+4SrkQaITBOPQePQgLTp/u BDOLPiPQw899ro4oAUld5DZihEwSf5dWVsDOMi0enfGVUnS+2Eje3j2Fa3YjJCCLT5WD 7HMQ== 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; bh=WLME4T5Z2d1HlMwy8QAFy4LOtRjKYn3BtqB6DvAJbNI=; b=LcHwYoeEjhFEh7d5nR+G/cfOUYs7R+6UqCBqnA2Sn7Q/pDMNvPK/gQDq5FKBg1KQLH QhqQkzVIhpkBbakVWN4PgZAiJAddxOd5pQUpEl9Gark8eO+baeYxDFuCpasU3iPdO74v v2UeHpduZlI4XfMscoOsXadZo3XWXkRS18HdkN/lQ1XPqemm1OVBw+AC6Iz3K8CXnbLz dxBE8KKoUj0cJrXsWSEKrW2T+PrNMpORHnivpWSobmP3AthmOydxXEDw735QjKG+t7Le 4RPDMM6VJCt5mXSmzinZr8ExRwQUKjugFwM5N1np34ZsyXAw9HzZkscXc5d65XzpluBI vM9g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t1si4574270edw.346.2021.05.18.16.29.04; Tue, 18 May 2021 16:29:04 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238685AbhERXaV (ORCPT + 7 others); Tue, 18 May 2021 19:30:21 -0400 Received: from mail-oi1-f174.google.com ([209.85.167.174]:37397 "EHLO mail-oi1-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238649AbhERXaU (ORCPT ); Tue, 18 May 2021 19:30:20 -0400 Received: by mail-oi1-f174.google.com with SMTP id h9so11459782oih.4; Tue, 18 May 2021 16:29:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WLME4T5Z2d1HlMwy8QAFy4LOtRjKYn3BtqB6DvAJbNI=; b=e0RsrMccImiE8w2czNudkkjnNH6RNPLS0kLBRpr6iYWsXebnWNW2KKW9v55tMBh1RY OCxysvaqdbEhyUwhP2g7RH0VM9v3MF7OcRp078zeOYXS5AoNq/oUViD/jJByd79TOh0G o2nAOMomtSqPBV83Nti8Cwqc10tUJZqEyExZ5OA+mRn34SXCm+Cw50VAp+Xq9k6Z7vWt OIKzfSMv1LxpVrPb1ax1xjLO3F4vaIqf0+/ygAtIwVS9PNKJo2lzIT1Pt1Pwq2k1GSD4 SLNQ/s7exp25nbAgujaMCcnJfsHHN1GcJGy6ubn1JJ/Z9JEcfhDQ3+CoZbeBKzgbmxV8 yBOA== X-Gm-Message-State: AOAM530+YZdWv1pKQ5WIUMaGvT9FwWX3OLZGgHNig0yWjk05jmDU7R11 Cqx6rsck55n7F0EuVPaidqLf8aBB7w== X-Received: by 2002:a05:6808:245:: with SMTP id m5mr5791187oie.6.1621380541410; Tue, 18 May 2021 16:29:01 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id d19sm3985608oop.26.2021.05.18.16.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 16:29:00 -0700 (PDT) From: Rob Herring To: devicetree@vger.kernel.org, Peter Rosin , Wolfram Sang Cc: linux-kernel@vger.kernel.org, Alexandre Belloni , Jacopo Mondi , Kieran Bingham , Kishon Vijay Abraham I , Laurent Pinchart , Lee Jones , =?utf-8?q?Niklas_S=C3=B6derlund?= , Roger Quadros , Jonathan Cameron Subject: [PATCH 1/6] dt-bindings: mfd: ti, j721e-system-controller: Fix mux node errors Date: Tue, 18 May 2021 18:28:53 -0500 Message-Id: <20210518232858.1535403-2-robh@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210518232858.1535403-1-robh@kernel.org> References: <20210518232858.1535403-1-robh@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The ti,j721e-system-controller binding does not follow the standard mux controller node name 'mux-controller' and the example is incomplete. Fix these to avoid schema errors before the mux controller binding is converted to schema. Cc: Lee Jones Cc: Kishon Vijay Abraham I Cc: Roger Quadros Signed-off-by: Rob Herring --- .../mfd/ti,j721e-system-controller.yaml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) -- 2.27.0 diff --git a/Documentation/devicetree/bindings/mfd/ti,j721e-system-controller.yaml b/Documentation/devicetree/bindings/mfd/ti,j721e-system-controller.yaml index 19fcf59fd2fe..272832e9f8f2 100644 --- a/Documentation/devicetree/bindings/mfd/ti,j721e-system-controller.yaml +++ b/Documentation/devicetree/bindings/mfd/ti,j721e-system-controller.yaml @@ -43,12 +43,10 @@ properties: patternProperties: # Optional children - "^serdes-ln-ctrl@[0-9a-f]+$": + "^mux-controller@[0-9a-f]+$": type: object - description: | - This is the SERDES lane control mux. It should follow the bindings - specified in - Documentation/devicetree/bindings/mux/reg-mux.txt + description: + This is the SERDES lane control mux. required: - compatible @@ -68,9 +66,18 @@ examples: #size-cells = <1>; ranges; - serdes_ln_ctrl: serdes-ln-ctrl@4080 { + serdes_ln_ctrl: mux-controller@4080 { compatible = "mmio-mux"; reg = <0x00004080 0x50>; + + #mux-control-cells = <1>; + mux-reg-masks = + <0x4080 0x3>, <0x4084 0x3>, /* SERDES0 lane0/1 select */ + <0x4090 0x3>, <0x4094 0x3>, /* SERDES1 lane0/1 select */ + <0x40a0 0x3>, <0x40a4 0x3>, /* SERDES2 lane0/1 select */ + <0x40b0 0x3>, <0x40b4 0x3>, /* SERDES3 lane0/1 select */ + <0x40c0 0x3>, <0x40c4 0x3>, <0x40c8 0x3>, <0x40cc 0x3>; + /* SERDES4 lane0/1/2/3 select */ }; }; ... From patchwork Tue May 18 23:28:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 441252 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp712764jac; Tue, 18 May 2021 16:29:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJza8yicxLnC615cM8PqfDBJAxAwl4bKfLPiTGAANac7cEu2sH3YiSqwKlcJb4xY3jveL0JQ X-Received: by 2002:a05:6402:2547:: with SMTP id l7mr6310924edb.73.1621380550186; Tue, 18 May 2021 16:29:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621380550; cv=none; d=google.com; s=arc-20160816; b=jBZdLF+exzYfnbF6uy9+MzpCk3Dl5MEWk7hh8DMxk2KBAaDbGTpsmlv+aaVSdRq6ar 30VXbGjGEbhe/LBRMAxMJRK2CVKgJEahdKwMPGciYLUCWO1AP12ITOjU7RVjX3d1on/x M5o8wN+KkCa0gvxlnjm42LMBTSgmVinlb4b7c85HU06ATmhwF1eZzmEU+KpcFeRuPT8k y9Iuu+U/h8KScfPiZGeGcmb7UnUdym63xq5loLHJqHQLq/grOywZ+Eiy6Z92xsgHkXrv 1EkXyPhW5Lx2NqCpmX0GsZ10REXhEy0lHUO1jVDT9XnlovFFW4Cv6sPiTFucxpNVUoqh T9Wg== 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; bh=ONKu0r6UrA/+nSoLHHrR2PJ8kD1WQsRPTA58wxevovQ=; b=Om8J5ae7NgEhnv2MLw6GppsnoqgcJ6GQazCXsDTudNQ4aFmOQr5XCpKgGQWAaB6nzo l5JFDKKp7kTAcQGQ0qJHt+fa8S/q2Lt5olwX9eQ4VOHtGYacPOv2aVXQcCaIT3kxzyc8 0FqBb7aGRe0uF7XYa+5mNk3iQmCVyWQc6vviAxa1YCtR5RWY9xo5IXsYztAZHSO3e5dI Oy7CbpA3mBbjTLOvRTWvavYCLoftslrHGaHNl1voxdwf6xhc3LcysMopogg7eIl1qqyS EgQkEEG94m55o0oCNyytlQwgFGs9qP/JVdTlcPwPBblHd4Tqbg44blYplYjdabhp435M KcNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q8si9820446edr.112.2021.05.18.16.29.10; Tue, 18 May 2021 16:29:10 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238747AbhERXaX (ORCPT + 7 others); Tue, 18 May 2021 19:30:23 -0400 Received: from mail-ot1-f45.google.com ([209.85.210.45]:39757 "EHLO mail-ot1-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238722AbhERXaW (ORCPT ); Tue, 18 May 2021 19:30:22 -0400 Received: by mail-ot1-f45.google.com with SMTP id d25-20020a0568300459b02902f886f7dd43so10172597otc.6; Tue, 18 May 2021 16:29:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ONKu0r6UrA/+nSoLHHrR2PJ8kD1WQsRPTA58wxevovQ=; b=iHMzB4eK5ZPJkBtedJyflkAwnbesNGEQ2xMV1v3wbz2sGM4zG46aa4tNfdSYFRnmrs 9bpQqjoRCkk6uq1pK2+QqsIubaSTrMVRkJkot0akaANNennaGXyL22odxaJnjywCFgg4 s/MK9eFjuCI5R/7EgH9OZUufwiluCgMwFo1PAXd/oCgpnBcCN+9U6UkfCsGrn1t0FmZ3 3jvYD93alVzo4f2XN+AfdnN+H7HwyKrVw4h+xidvKA6b17/nFEYhXIyHfa5Q5b6NfbFv SvNgUoOseb237owTiw7tXfEoD6x7wclwfbQSi67baiwImjuYIyK7KECZ4yG/THk/DnEc a5WQ== X-Gm-Message-State: AOAM5302Mz8yMBTarJYXdOQy/Fol16FkZfh7ddSMwqH3B4yom2lwdf3T XcMngpc/3LUXx+g3pd/lddVG8NRjLg== X-Received: by 2002:a05:6830:1512:: with SMTP id k18mr6076380otp.357.1621380542650; Tue, 18 May 2021 16:29:02 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id d19sm3985608oop.26.2021.05.18.16.29.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 16:29:02 -0700 (PDT) From: Rob Herring To: devicetree@vger.kernel.org, Peter Rosin , Wolfram Sang Cc: linux-kernel@vger.kernel.org, Alexandre Belloni , Jacopo Mondi , Kieran Bingham , Kishon Vijay Abraham I , Laurent Pinchart , Lee Jones , =?utf-8?q?Niklas_S=C3=B6derlund?= , Roger Quadros , Jonathan Cameron Subject: [PATCH 2/6] dt-bindings: rtc: nxp,pcf8563: Convert to DT schema Date: Tue, 18 May 2021 18:28:54 -0500 Message-Id: <20210518232858.1535403-3-robh@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210518232858.1535403-1-robh@kernel.org> References: <20210518232858.1535403-1-robh@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Convert the Philips PCF8563/Epson RTC8564 binding to DT schema format. Add 'interrupts' as this device has an interrupt which was not documented, but in use. Cc: Alexandre Belloni Signed-off-by: Rob Herring --- .../devicetree/bindings/rtc/nxp,pcf8563.yaml | 50 +++++++++++++++++++ .../devicetree/bindings/rtc/pcf8563.txt | 29 ----------- 2 files changed, 50 insertions(+), 29 deletions(-) create mode 100644 Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml delete mode 100644 Documentation/devicetree/bindings/rtc/pcf8563.txt -- 2.27.0 Reviewed-by: Laurent Pinchart diff --git a/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml b/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml new file mode 100644 index 000000000000..15e67be0ef95 --- /dev/null +++ b/Documentation/devicetree/bindings/rtc/nxp,pcf8563.yaml @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/rtc/nxp,pcf8563.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Philips PCF8563/Epson RTC8564 Real Time Clock + +maintainers: + - Alexandre Belloni + +properties: + compatible: + enum: + - epson,rtc8564 + - microcrystal,rv8564 + - nxp,pcf8563 + - nxp,pca8565 + + reg: + maxItems: 1 + + "#clock-cells": + const: 0 + + clock-output-names: + maxItems: 1 + + interrupts: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + rtc@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + #clock-cells = <0>; + }; + }; +... diff --git a/Documentation/devicetree/bindings/rtc/pcf8563.txt b/Documentation/devicetree/bindings/rtc/pcf8563.txt deleted file mode 100644 index 0a900f7c8977..000000000000 --- a/Documentation/devicetree/bindings/rtc/pcf8563.txt +++ /dev/null @@ -1,29 +0,0 @@ -* Philips PCF8563/Epson RTC8564 Real Time Clock - -Philips PCF8563/Epson RTC8564 Real Time Clock - -Required properties: -- compatible: Should contain "nxp,pcf8563", - "epson,rtc8564" or - "microcrystal,rv8564" or - "nxp,pca8565" -- reg: I2C address for chip. - -Optional property: -- #clock-cells: Should be 0. -- clock-output-names: - overwrite the default clock name "pcf8563-clkout" - -Example: - -pcf8563: pcf8563@51 { - compatible = "nxp,pcf8563"; - reg = <0x51>; - #clock-cells = <0>; -}; - -device { -... - clocks = <&pcf8563>; -... -}; From patchwork Tue May 18 23:28:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 441253 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp712776jac; Tue, 18 May 2021 16:29:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyo1YGZ0P6Fvp7+0ZN52igS2dLq+QGflHbhYBvOB3xgAQd21IKCFBhF9dsKEFKxHBcBMIhh X-Received: by 2002:a50:fc91:: with SMTP id f17mr9610545edq.201.1621380551350; Tue, 18 May 2021 16:29:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621380551; cv=none; d=google.com; s=arc-20160816; b=I+D0UCnEyK40WwKUXy/QnzknE2KqVKAyx1UBKqs2LAb4OffPdlUSaYNwWEWNCQlEeh R5QMrCDxyT0BitdhvOzRVtiJoTqaHu+P2RUWkp+dPMb3LaZuoR0rjzu2PwfOBngqNdTF +/6BzPbZ9ur/o9QKZB4TRwSK7lNtya6c9LB9Onjv6l2YkS2EAcQmNJ4RI7zUDQMuh+wD EaFmbxUjSVvPtCuyhwjDKKrKSgonslob5P7XqdLUQ1XsxgEKD3BQU52iZYvvr65tZRTl zBSIdpqNyVQ4TcFgOaT0mkCd1SgG9RFmLsEN+jfxIxXnhDRLcX6XAJyQOfD6/IvHV6VH JMKw== 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; bh=tL4betCcJUBKDgxX1eSsWqbFGROqcu3iYpQo6vDolxg=; b=lSF4KkvUauutl4rJx4aY5FwOYDuwToFmT65MJT/nnb0DyHUPHo1lrC7R5qtFoq4Ewc zsP69JV0CQLbbox7pY4IDrHumtP8YWd+mWjxWeWdWqlKbexTwRWfn3drhAu07YAfqU1n HayuJDhgM+8Gl79ycR4Nc3ej8LK3V8W7GdQ8vL08HVXfhc8tddIM8bkGui1hQU0uF0cN m15t39o/l1rFr0fKB1TNdrSfoZuF3y7KsDmOEMFlaLluvGOGI/j7Rsml1zEQPa1xJpVv rX0pEKVb4RZVdWNLJqeX46Ht7OGawzf92iV1MbaSLGg53en5wg8AD5Hqvnpo1aA+mW32 aRsg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q8si9820446edr.112.2021.05.18.16.29.11; Tue, 18 May 2021 16:29:11 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239004AbhERXa1 (ORCPT + 7 others); Tue, 18 May 2021 19:30:27 -0400 Received: from mail-ot1-f41.google.com ([209.85.210.41]:40857 "EHLO mail-ot1-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238941AbhERXaZ (ORCPT ); Tue, 18 May 2021 19:30:25 -0400 Received: by mail-ot1-f41.google.com with SMTP id s5-20020a05683004c5b029032307304915so2900276otd.7; Tue, 18 May 2021 16:29:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tL4betCcJUBKDgxX1eSsWqbFGROqcu3iYpQo6vDolxg=; b=TdL8Y72wvpYv8YN0LxyZZccXINtlG3XIswqwZSPRZAHSeMlomIZbnr8IP4mlO6SXGx tj3nB2Vr0q5mCr8LDjX8P1/VQ3kd+oxetmVSpQqqE+rsrdVvOXL/wFbm1WFNn4dcHpXd /T3r4Wz/OJpSeyq50q1RYu8M+n+BFweTsgD/IjHN9aw0bLoydgCCH+HxpXGIs212GB9V jkDFlkpvOa6ZajdecRHeaqKkrUkgm2QXHmfpjO/uTHRb6P6j9dXRZuUNrOsmJHpPM1eH F4/b1DG6Ma+MbsomfT2fsr4iv96FhSHuLM16snDxb32C63O6ggfAgkEuyw/TZuqfD1N0 EykQ== X-Gm-Message-State: AOAM532b4PqaoEsx3o+w6C4BnI/svrbvwyOXJgkztwg0nBd4kXQ79HWm TXyUrz0We/JK5OjMqFhoLJS1aqdsQA== X-Received: by 2002:a9d:1e4:: with SMTP id e91mr5779731ote.57.1621380544103; Tue, 18 May 2021 16:29:04 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id d19sm3985608oop.26.2021.05.18.16.29.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 16:29:03 -0700 (PDT) From: Rob Herring To: devicetree@vger.kernel.org, Peter Rosin , Wolfram Sang Cc: linux-kernel@vger.kernel.org, Alexandre Belloni , Jacopo Mondi , Kieran Bingham , Kishon Vijay Abraham I , Laurent Pinchart , Lee Jones , =?utf-8?q?Niklas_S=C3=B6derlund?= , Roger Quadros , Jonathan Cameron Subject: [PATCH 3/6] dt-bindings: mux: Convert mux controller bindings to schema Date: Tue, 18 May 2021 18:28:55 -0500 Message-Id: <20210518232858.1535403-4-robh@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210518232858.1535403-1-robh@kernel.org> References: <20210518232858.1535403-1-robh@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Convert the mux controller bindings to DT schema. Cc: Peter Rosin Signed-off-by: Rob Herring --- .../devicetree/bindings/i2c/i2c-mux-gpmux.txt | 2 +- .../bindings/i2c/i2c-mux-pca954x.txt | 2 +- .../iio/multiplexer/io-channel-mux.txt | 2 +- .../devicetree/bindings/mtd/ti,am654-hbmc.txt | 2 +- .../devicetree/bindings/mux/adi,adg792a.txt | 2 +- .../devicetree/bindings/mux/adi,adgs1408.txt | 2 +- .../devicetree/bindings/mux/gpio-mux.txt | 69 ------- .../devicetree/bindings/mux/gpio-mux.yaml | 92 +++++++++ .../devicetree/bindings/mux/mux-consumer.yaml | 46 +++++ .../bindings/mux/mux-controller.txt | 157 --------------- .../bindings/mux/mux-controller.yaml | 182 ++++++++++++++++++ .../devicetree/bindings/mux/reg-mux.txt | 129 ------------- .../devicetree/bindings/mux/reg-mux.yaml | 143 ++++++++++++++ .../bindings/net/mdio-mux-multiplexer.txt | 2 +- 14 files changed, 470 insertions(+), 362 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mux/gpio-mux.txt create mode 100644 Documentation/devicetree/bindings/mux/gpio-mux.yaml create mode 100644 Documentation/devicetree/bindings/mux/mux-consumer.yaml delete mode 100644 Documentation/devicetree/bindings/mux/mux-controller.txt create mode 100644 Documentation/devicetree/bindings/mux/mux-controller.yaml delete mode 100644 Documentation/devicetree/bindings/mux/reg-mux.txt create mode 100644 Documentation/devicetree/bindings/mux/reg-mux.yaml -- 2.27.0 Reviewed-by: Jonathan Cameron diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt index 8b444b94e92f..057083a8ba17 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt @@ -25,7 +25,7 @@ Required properties: mux. * Standard I2C mux properties. See i2c-mux.txt in this directory. * I2C child bus nodes. See i2c-mux.txt in this directory. The sub-bus number - is also the mux-controller state described in ../mux/mux-controller.txt + is also the mux-controller state described in ../mux/mux-controller.yaml Optional properties: - mux-locked: If present, explicitly allow unrelated I2C transactions on the diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt index 7abda506b828..9f3f3eb67e87 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt @@ -26,7 +26,7 @@ Optional Properties: - reset-gpios: Reference to the GPIO connected to the reset input. - idle-state: if present, overrides i2c-mux-idle-disconnect, - Please refer to Documentation/devicetree/bindings/mux/mux-controller.txt + Please refer to Documentation/devicetree/bindings/mux/mux-controller.yaml - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all children in idle state. This is necessary for example, if there are several multiplexers on the bus and the devices behind them use same I2C addresses. diff --git a/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt b/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt index 89647d714387..d2b3105dba67 100644 --- a/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt +++ b/Documentation/devicetree/bindings/iio/multiplexer/io-channel-mux.txt @@ -17,7 +17,7 @@ For each non-empty string in the channels property, an io-channel will be created. The number of this io-channel is the same as the index into the list of strings in the channels property, and also matches the mux controller state. The mux controller state is described in -../mux/mux-controller.txt +../mux/mux-controller.yaml Example: mux: mux-controller { diff --git a/Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt b/Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt index faa81c2e5da6..ccfd37b8a0ad 100644 --- a/Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt +++ b/Documentation/devicetree/bindings/mtd/ti,am654-hbmc.txt @@ -13,7 +13,7 @@ Optional properties: - mux-controls : phandle to the multiplexer that controls selection of HBMC vs OSPI inside Flash SubSystem (FSS). Default is OSPI, if property is absent. - See Documentation/devicetree/bindings/mux/reg-mux.txt + See Documentation/devicetree/bindings/mux/reg-mux.yaml for mmio-mux binding details Example: diff --git a/Documentation/devicetree/bindings/mux/adi,adg792a.txt b/Documentation/devicetree/bindings/mux/adi,adg792a.txt index 96b787a69f50..b0e5bf6903d8 100644 --- a/Documentation/devicetree/bindings/mux/adi,adg792a.txt +++ b/Documentation/devicetree/bindings/mux/adi,adg792a.txt @@ -5,7 +5,7 @@ Required properties: - #mux-control-cells : <0> if parallel (the three muxes are bound together with a single mux controller controlling all three muxes), or <1> if not (one mux controller for each mux). -* Standard mux-controller bindings as described in mux-controller.txt +* Standard mux-controller bindings as described in mux-controller.yaml Optional properties for ADG792G: - gpio-controller : if present, #gpio-cells below is required. diff --git a/Documentation/devicetree/bindings/mux/adi,adgs1408.txt b/Documentation/devicetree/bindings/mux/adi,adgs1408.txt index be6947f4d86b..453a38961c13 100644 --- a/Documentation/devicetree/bindings/mux/adi,adgs1408.txt +++ b/Documentation/devicetree/bindings/mux/adi,adgs1408.txt @@ -4,7 +4,7 @@ Required properties: - compatible : Should be one of * "adi,adgs1408" * "adi,adgs1409" -* Standard mux-controller bindings as described in mux-controller.txt +* Standard mux-controller bindings as described in mux-controller.yaml Optional properties for ADGS1408/1409: - gpio-controller : if present, #gpio-cells is required. diff --git a/Documentation/devicetree/bindings/mux/gpio-mux.txt b/Documentation/devicetree/bindings/mux/gpio-mux.txt deleted file mode 100644 index b8f746344d80..000000000000 --- a/Documentation/devicetree/bindings/mux/gpio-mux.txt +++ /dev/null @@ -1,69 +0,0 @@ -GPIO-based multiplexer controller bindings - -Define what GPIO pins are used to control a multiplexer. Or several -multiplexers, if the same pins control more than one multiplexer. - -Required properties: -- compatible : "gpio-mux" -- mux-gpios : list of gpios used to control the multiplexer, least - significant bit first. -- #mux-control-cells : <0> -* Standard mux-controller bindings as decribed in mux-controller.txt - -Optional properties: -- idle-state : if present, the state the mux will have when idle. The - special state MUX_IDLE_AS_IS is the default. - -The multiplexer state is defined as the number represented by the -multiplexer GPIO pins, where the first pin is the least significant -bit. An active pin is a binary 1, an inactive pin is a binary 0. - -Example: - - mux: mux-controller { - compatible = "gpio-mux"; - #mux-control-cells = <0>; - - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, - <&pioA 1 GPIO_ACTIVE_HIGH>; - }; - - adc-mux { - compatible = "io-channel-mux"; - io-channels = <&adc 0>; - io-channel-names = "parent"; - - mux-controls = <&mux>; - - channels = "sync-1", "in", "out", "sync-2"; - }; - - i2c-mux { - compatible = "i2c-mux"; - i2c-parent = <&i2c1>; - - mux-controls = <&mux>; - - #address-cells = <1>; - #size-cells = <0>; - - i2c@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - ssd1307: oled@3c { - /* ... */ - }; - }; - - i2c@3 { - reg = <3>; - #address-cells = <1>; - #size-cells = <0>; - - pca9555: pca9555@20 { - /* ... */ - }; - }; - }; diff --git a/Documentation/devicetree/bindings/mux/gpio-mux.yaml b/Documentation/devicetree/bindings/mux/gpio-mux.yaml new file mode 100644 index 000000000000..0a7c8d64981a --- /dev/null +++ b/Documentation/devicetree/bindings/mux/gpio-mux.yaml @@ -0,0 +1,92 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mux/gpio-mux.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: GPIO-based multiplexer controller bindings + +maintainers: + - Peter Rosin + +description: |+ + Define what GPIO pins are used to control a multiplexer. Or several + multiplexers, if the same pins control more than one multiplexer. + + The multiplexer state is defined as the number represented by the + multiplexer GPIO pins, where the first pin is the least significant + bit. An active pin is a binary 1, an inactive pin is a binary 0. + +properties: + compatible: + const: gpio-mux + + mux-gpios: + description: + List of gpios used to control the multiplexer, least significant bit first. + + '#mux-control-cells': + const: 0 + + idle-state: + default: -1 + +required: + - compatible + - mux-gpios + - "#mux-control-cells" + +additionalProperties: false + +examples: + - | + #include + + mux: mux-controller { + compatible = "gpio-mux"; + #mux-control-cells = <0>; + + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, + <&pioA 1 GPIO_ACTIVE_HIGH>; + }; + + adc-mux { + compatible = "io-channel-mux"; + io-channels = <&adc 0>; + io-channel-names = "parent"; + + mux-controls = <&mux>; + + channels = "sync-1", "in", "out", "sync-2"; + }; + + i2c-mux { + compatible = "i2c-mux"; + i2c-parent = <&i2c1>; + + mux-controls = <&mux>; + + #address-cells = <1>; + #size-cells = <0>; + + i2c@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + ssd1307: oled@3c { + reg = <0x3c>; + }; + }; + + i2c@3 { + reg = <3>; + #address-cells = <1>; + #size-cells = <0>; + + pca9555: pca9555@20 { + reg = <0x20>; + }; + }; + }; +... diff --git a/Documentation/devicetree/bindings/mux/mux-consumer.yaml b/Documentation/devicetree/bindings/mux/mux-consumer.yaml new file mode 100644 index 000000000000..7af93298ab5c --- /dev/null +++ b/Documentation/devicetree/bindings/mux/mux-consumer.yaml @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mux/mux-consumer.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Common multiplexer controller consumer bindings + +maintainers: + - Peter Rosin + +description: | + Mux controller consumers should specify a list of mux controllers that they + want to use with a property containing a 'mux-ctrl-list': + + mux-ctrl-list ::= [mux-ctrl-list] + single-mux-ctrl ::= [mux-ctrl-specifier] + mux-ctrl-phandle : phandle to mux controller node + mux-ctrl-specifier : array of #mux-control-cells specifying the + given mux controller (controller specific) + + Mux controller properties should be named "mux-controls". The exact meaning of + each mux controller property must be documented in the device tree binding for + each consumer. An optional property "mux-control-names" may contain a list of + strings to label each of the mux controllers listed in the "mux-controls" + property. + + mux-ctrl-specifier typically encodes the chip-relative mux controller number. + If the mux controller chip only provides a single mux controller, the + mux-ctrl-specifier can typically be left out. + +select: true + +properties: + mux-controls: + $ref: /schemas/types.yaml#/definitions/phandle-array + + mux-control-names: + description: + Devices that use more than a single mux controller can use the + "mux-control-names" property to map the name of the requested mux + controller to an index into the list given by the "mux-controls" property. + +additionalProperties: true + +... diff --git a/Documentation/devicetree/bindings/mux/mux-controller.txt b/Documentation/devicetree/bindings/mux/mux-controller.txt deleted file mode 100644 index 4f47e4bd2fa0..000000000000 --- a/Documentation/devicetree/bindings/mux/mux-controller.txt +++ /dev/null @@ -1,157 +0,0 @@ -Common multiplexer controller bindings -====================================== - -A multiplexer (or mux) controller will have one, or several, consumer devices -that uses the mux controller. Thus, a mux controller can possibly control -several parallel multiplexers. Presumably there will be at least one -multiplexer needed by each consumer, but a single mux controller can of course -control several multiplexers for a single consumer. - -A mux controller provides a number of states to its consumers, and the state -space is a simple zero-based enumeration. I.e. 0-1 for a 2-way multiplexer, -0-7 for an 8-way multiplexer, etc. - - -Consumers ---------- - -Mux controller consumers should specify a list of mux controllers that they -want to use with a property containing a 'mux-ctrl-list': - - mux-ctrl-list ::= [mux-ctrl-list] - single-mux-ctrl ::= [mux-ctrl-specifier] - mux-ctrl-phandle : phandle to mux controller node - mux-ctrl-specifier : array of #mux-control-cells specifying the - given mux controller (controller specific) - -Mux controller properties should be named "mux-controls". The exact meaning of -each mux controller property must be documented in the device tree binding for -each consumer. An optional property "mux-control-names" may contain a list of -strings to label each of the mux controllers listed in the "mux-controls" -property. - -Drivers for devices that use more than a single mux controller can use the -"mux-control-names" property to map the name of the requested mux controller -to an index into the list given by the "mux-controls" property. - -mux-ctrl-specifier typically encodes the chip-relative mux controller number. -If the mux controller chip only provides a single mux controller, the -mux-ctrl-specifier can typically be left out. - -Example: - - /* One consumer of a 2-way mux controller (one GPIO-line) */ - mux: mux-controller { - compatible = "gpio-mux"; - #mux-control-cells = <0>; - - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>; - }; - - adc-mux { - compatible = "io-channel-mux"; - io-channels = <&adc 0>; - io-channel-names = "parent"; - - mux-controls = <&mux>; - mux-control-names = "adc"; - - channels = "sync", "in"; - }; - -Note that in the example above, specifying the "mux-control-names" is redundant -because there is only one mux controller in the list. However, if the driver -for the consumer node in fact asks for a named mux controller, that name is of -course still required. - - /* - * Two consumers (one for an ADC line and one for an i2c bus) of - * parallel 4-way multiplexers controlled by the same two GPIO-lines. - */ - mux: mux-controller { - compatible = "gpio-mux"; - #mux-control-cells = <0>; - - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, - <&pioA 1 GPIO_ACTIVE_HIGH>; - }; - - adc-mux { - compatible = "io-channel-mux"; - io-channels = <&adc 0>; - io-channel-names = "parent"; - - mux-controls = <&mux>; - - channels = "sync-1", "in", "out", "sync-2"; - }; - - i2c-mux { - compatible = "i2c-mux"; - i2c-parent = <&i2c1>; - - mux-controls = <&mux>; - - #address-cells = <1>; - #size-cells = <0>; - - i2c@0 { - reg = <0>; - #address-cells = <1>; - #size-cells = <0>; - - ssd1307: oled@3c { - /* ... */ - }; - }; - - i2c@3 { - reg = <3>; - #address-cells = <1>; - #size-cells = <0>; - - pca9555: pca9555@20 { - /* ... */ - }; - }; - }; - - -Mux controller nodes --------------------- - -Mux controller nodes must specify the number of cells used for the -specifier using the '#mux-control-cells' property. - -Optionally, mux controller nodes can also specify the state the mux should -have when it is idle. The idle-state property is used for this. If the -idle-state is not present, the mux controller is typically left as is when -it is idle. For multiplexer chips that expose several mux controllers, the -idle-state property is an array with one idle state for each mux controller. - -The special value (-1) may be used to indicate that the mux should be left -as is when it is idle. This is the default, but can still be useful for -mux controller chips with more than one mux controller, particularly when -there is a need to "step past" a mux controller and set some other idle -state for a mux controller with a higher index. - -Some mux controllers have the ability to disconnect the input/output of the -multiplexer. Using this disconnected high-impedance state as the idle state -is indicated with idle state (-2). - -These constants are available in - - #include - -as MUX_IDLE_AS_IS (-1) and MUX_IDLE_DISCONNECT (-2). - -An example mux controller node look like this (the adg972a chip is a triple -4-way multiplexer): - - mux: mux-controller@50 { - compatible = "adi,adg792a"; - reg = <0x50>; - #mux-control-cells = <1>; - - idle-state = ; - }; diff --git a/Documentation/devicetree/bindings/mux/mux-controller.yaml b/Documentation/devicetree/bindings/mux/mux-controller.yaml new file mode 100644 index 000000000000..736a84c3b6a5 --- /dev/null +++ b/Documentation/devicetree/bindings/mux/mux-controller.yaml @@ -0,0 +1,182 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mux/mux-controller.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Common multiplexer controller provider bindings + +maintainers: + - Peter Rosin + +description: | + A multiplexer (or mux) controller will have one, or several, consumer devices + that uses the mux controller. Thus, a mux controller can possibly control + several parallel multiplexers. Presumably there will be at least one + multiplexer needed by each consumer, but a single mux controller can of course + control several multiplexers for a single consumer. + + A mux controller provides a number of states to its consumers, and the state + space is a simple zero-based enumeration. I.e. 0-1 for a 2-way multiplexer, + 0-7 for an 8-way multiplexer, etc. + + + Mux controller nodes + -------------------- + + Mux controller nodes must specify the number of cells used for the + specifier using the '#mux-control-cells' property. + + Optionally, mux controller nodes can also specify the state the mux should + have when it is idle. The idle-state property is used for this. If the + idle-state is not present, the mux controller is typically left as is when + it is idle. For multiplexer chips that expose several mux controllers, the + idle-state property is an array with one idle state for each mux controller. + + The special value (-1) may be used to indicate that the mux should be left + as is when it is idle. This is the default, but can still be useful for + mux controller chips with more than one mux controller, particularly when + there is a need to "step past" a mux controller and set some other idle + state for a mux controller with a higher index. + + Some mux controllers have the ability to disconnect the input/output of the + multiplexer. Using this disconnected high-impedance state as the idle state + is indicated with idle state (-2). + + These constants are available in + + #include + + as MUX_IDLE_AS_IS (-1) and MUX_IDLE_DISCONNECT (-2). + + An example mux controller node look like this (the adg972a chip is a triple + 4-way multiplexer): + + mux: mux-controller@50 { + compatible = "adi,adg792a"; + reg = <0x50>; + #mux-control-cells = <1>; + + idle-state = ; + }; + +select: + anyOf: + - properties: + $nodename: + pattern: '^mux-controller' + - required: + - '#mux-control-cells' + +properties: + $nodename: + pattern: '^mux-controller(@.*|-[0-9a-f]+)?$' + + '#mux-control-cells': + enum: [ 0, 1 ] + + idle-state: + $ref: /schemas/types.yaml#/definitions/int32 + minimum: -2 + + idle-states: + description: | + Mux controller nodes can specify the state the mux should have when it is + idle. If the idle-state is not present, the mux controller is typically + left as is when it is idle. For multiplexer chips that expose several mux + controllers, the idle-state property is an array with one idle state for + each mux controller. + + The special value (-1) may be used to indicate that the mux should be left + as is when it is idle. This is the default, but can still be useful for + mux controller chips with more than one mux controller, particularly when + there is a need to "step past" a mux controller and set some other idle + state for a mux controller with a higher index. + + Some mux controllers have the ability to disconnect the input/output of the + multiplexer. Using this disconnected high-impedance state as the idle state + is indicated with idle state (-2). + $ref: /schemas/types.yaml#/definitions/int32-array + items: + minimum: -2 + +additionalProperties: true + +examples: + - | + #include + + /* One consumer of a 2-way mux controller (one GPIO-line) */ + mux: mux-controller { + compatible = "gpio-mux"; + #mux-control-cells = <0>; + + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>; + }; + + adc-mux { + compatible = "io-channel-mux"; + io-channels = <&adc 0>; + io-channel-names = "parent"; + + mux-controls = <&mux>; + mux-control-names = "adc"; + + channels = "sync", "in"; + }; + + - | + #include + + /* + * Two consumers (one for an ADC line and one for an i2c bus) of + * parallel 4-way multiplexers controlled by the same two GPIO-lines. + */ + mux2: mux-controller { + compatible = "gpio-mux"; + #mux-control-cells = <0>; + + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, + <&pioA 1 GPIO_ACTIVE_HIGH>; + }; + + adc-mux { + compatible = "io-channel-mux"; + io-channels = <&adc 0>; + io-channel-names = "parent"; + + mux-controls = <&mux2>; + + channels = "sync-1", "in", "out", "sync-2"; + }; + + i2c-mux { + compatible = "i2c-mux"; + i2c-parent = <&i2c1>; + + mux-controls = <&mux2>; + + #address-cells = <1>; + #size-cells = <0>; + + i2c@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + ssd1307: oled@3c { + reg = <0x3c>; + }; + }; + + i2c@3 { + reg = <3>; + #address-cells = <1>; + #size-cells = <0>; + + pca9555: pca9555@20 { + reg = <0x20>; + }; + }; + }; +... diff --git a/Documentation/devicetree/bindings/mux/reg-mux.txt b/Documentation/devicetree/bindings/mux/reg-mux.txt deleted file mode 100644 index 4afd7ba73d60..000000000000 --- a/Documentation/devicetree/bindings/mux/reg-mux.txt +++ /dev/null @@ -1,129 +0,0 @@ -Generic register bitfield-based multiplexer controller bindings - -Define register bitfields to be used to control multiplexers. The parent -device tree node must be a device node to provide register r/w access. - -Required properties: -- compatible : should be one of - "reg-mux" : if parent device of mux controller is not syscon device - "mmio-mux" : if parent device of mux controller is syscon device -- #mux-control-cells : <1> -- mux-reg-masks : an array of register offset and pre-shifted bitfield mask - pairs, each describing a single mux control. -* Standard mux-controller bindings as decribed in mux-controller.txt - -Optional properties: -- idle-states : if present, the state the muxes will have when idle. The - special state MUX_IDLE_AS_IS is the default. - -The multiplexer state of each multiplexer is defined as the value of the -bitfield described by the corresponding register offset and bitfield mask -pair in the mux-reg-masks array. - -Example 1: -The parent device of mux controller is not a syscon device. - -&i2c0 { - fpga@66 { // fpga connected to i2c - compatible = "fsl,lx2160aqds-fpga", "fsl,fpga-qixis-i2c", - "simple-mfd"; - reg = <0x66>; - - mux: mux-controller { - compatible = "reg-mux"; - #mux-control-cells = <1>; - mux-reg-masks = <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ - <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ - }; - }; -}; - -mdio-mux-1 { - compatible = "mdio-mux-multiplexer"; - mux-controls = <&mux 0>; - mdio-parent-bus = <&emdio1>; - #address-cells = <1>; - #size-cells = <0>; - - mdio@0 { - reg = <0x0>; - #address-cells = <1>; - #size-cells = <0>; - }; - - mdio@8 { - reg = <0x8>; - #address-cells = <1>; - #size-cells = <0>; - }; - - .. - .. -}; - -mdio-mux-2 { - compatible = "mdio-mux-multiplexer"; - mux-controls = <&mux 1>; - mdio-parent-bus = <&emdio2>; - #address-cells = <1>; - #size-cells = <0>; - - mdio@0 { - reg = <0x0>; - #address-cells = <1>; - #size-cells = <0>; - }; - - mdio@1 { - reg = <0x1>; - #address-cells = <1>; - #size-cells = <0>; - }; - - .. - .. -}; - -Example 2: -The parent device of mux controller is syscon device. - -syscon { - compatible = "syscon"; - - mux: mux-controller { - compatible = "mmio-mux"; - #mux-control-cells = <1>; - - mux-reg-masks = <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */ - <0x3 0x40>, /* 1: reg 0x3, bit 6 */ - idle-states = , <0>; - }; -}; - -video-mux { - compatible = "video-mux"; - mux-controls = <&mux 0>; - #address-cells = <1>; - #size-cells = <0>; - - ports { - /* inputs 0..3 */ - port@0 { - reg = <0>; - }; - port@1 { - reg = <1>; - }; - port@2 { - reg = <2>; - }; - port@3 { - reg = <3>; - }; - - /* output */ - port@4 { - reg = <4>; - }; - }; -}; diff --git a/Documentation/devicetree/bindings/mux/reg-mux.yaml b/Documentation/devicetree/bindings/mux/reg-mux.yaml new file mode 100644 index 000000000000..60d5746eb39d --- /dev/null +++ b/Documentation/devicetree/bindings/mux/reg-mux.yaml @@ -0,0 +1,143 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mux/reg-mux.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Generic register bitfield-based multiplexer controller bindings + +maintainers: + - Peter Rosin + +description: |+ + Define register bitfields to be used to control multiplexers. The parent + device tree node must be a device node to provide register r/w access. + +properties: + compatible: + enum: + - reg-mux # parent device of mux controller is not syscon device + - mmio-mux # parent device of mux controller is syscon device + + reg: true + + '#mux-control-cells': + const: 1 + + mux-reg-masks: + description: an array of register offset and pre-shifted bitfield mask + pairs, each describing a single mux control. + + idle-states: true + +required: + - compatible + - mux-reg-masks + - '#mux-control-cells' + +additionalProperties: false + +examples: + - | + /* The parent device of mux controller is not a syscon device. */ + + #include + + mux-controller { + compatible = "reg-mux"; + #mux-control-cells = <1>; + mux-reg-masks = + <0x54 0xf8>, /* 0: reg 0x54, bits 7:3 */ + <0x54 0x07>; /* 1: reg 0x54, bits 2:0 */ + }; + + mdio-mux-1 { + compatible = "mdio-mux-multiplexer"; + mux-controls = <&mux1 0>; + mdio-parent-bus = <&emdio1>; + #address-cells = <1>; + #size-cells = <0>; + + mdio@0 { + reg = <0x0>; + #address-cells = <1>; + #size-cells = <0>; + }; + + mdio@8 { + reg = <0x8>; + #address-cells = <1>; + #size-cells = <0>; + }; + }; + + mdio-mux-2 { + compatible = "mdio-mux-multiplexer"; + mux-controls = <&mux1 1>; + mdio-parent-bus = <&emdio2>; + #address-cells = <1>; + #size-cells = <0>; + + mdio@0 { + reg = <0x0>; + #address-cells = <1>; + #size-cells = <0>; + }; + + mdio@1 { + reg = <0x1>; + #address-cells = <1>; + #size-cells = <0>; + }; + }; + + - | + /* The parent device of mux controller is syscon device. */ + + #include + syscon@1000 { + compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd"; + reg = <0x1000 0x100>; + + mux2: mux-controller { + compatible = "mmio-mux"; + #mux-control-cells = <1>; + + mux-reg-masks = + <0x3 0x30>, /* 0: reg 0x3, bits 5:4 */ + <0x3 0x40>; /* 1: reg 0x3, bit 6 */ + idle-states = , <0>; + }; + }; + + video-mux { + compatible = "video-mux"; + mux-controls = <&mux2 0>; + #address-cells = <1>; + #size-cells = <0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* inputs 0..3 */ + port@0 { + reg = <0>; + }; + port@1 { + reg = <1>; + }; + port@2 { + reg = <2>; + }; + port@3 { + reg = <3>; + }; + + /* output */ + port@4 { + reg = <4>; + }; + }; + }; +... diff --git a/Documentation/devicetree/bindings/net/mdio-mux-multiplexer.txt b/Documentation/devicetree/bindings/net/mdio-mux-multiplexer.txt index 534e38058fe0..87fd0b4f654f 100644 --- a/Documentation/devicetree/bindings/net/mdio-mux-multiplexer.txt +++ b/Documentation/devicetree/bindings/net/mdio-mux-multiplexer.txt @@ -14,7 +14,7 @@ each child node of mdio bus multiplexer consumer device represent a mdio bus. for more information please refer -Documentation/devicetree/bindings/mux/mux-controller.txt +Documentation/devicetree/bindings/mux/mux-controller.yaml and Documentation/devicetree/bindings/net/mdio-mux.txt Example: From patchwork Tue May 18 23:28:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 441254 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp712799jac; Tue, 18 May 2021 16:29:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyHBFKkaWZTN8rJhDWRH1kmafId9cYbJbE+b5FX+unpF0bDYFdoz1EXf2v216mf42GE18hT X-Received: by 2002:aa7:d893:: with SMTP id u19mr10026308edq.258.1621380552443; Tue, 18 May 2021 16:29:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621380552; cv=none; d=google.com; s=arc-20160816; b=MZrCDO5yD/6gUs+jSHOSOS+fZC59YGVvsCAFXrNkGQGpncLPD4Peuj7MFoK5dKpaTj /rceHayMH9j8bJoIEJg6IWdtwKagIwnyCWFaFbJRSN9p52X6Auy0Zv5EIgekA9j1oCqE KIxiMMbnOLrQ4K3jxxAM1Wu8eyvePIELCUfZ0lF1rJi7/l7kfBM5NA9JZiJFpTkD74wP lSchKZu397i1PezQLgAImDNBCEDlWYDftaT+ebZO8pLQYmCnxM2/jb7mMDfpEZ5jVRZU 1tf0ajBLgGMDAiMcz1Dfa2P6ziSDh1KwJb6JBgRTu+AwcoIjzSEJxo+E+R4TCOKHs3mH yCHQ== 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; bh=eqsOwRGCjYYgkrBUSVZqjkvfIx+eLEI4ynYHotBpsrU=; b=TALHlpfFxdN3cRAEwPSKWYDI09mKmTQuQNg7rAFGI3yF0PLZmjiNtcnEzeKULmLymw Os4bLQE4KaN3MLU6yIsSd0ppyK01/ddSJBJYwaBxF93ZTlKf2RgS31y5l8jjpse/V9cc 0JLk3vEynKDZahavomk128iSWiQU0aX5qQPkLVpiLia2R8Uq7+cHfZH1KRiQHc2f6ecH JanLky3OxhAYNHyIJE4k9jqmBsRlI5DIGskM2yFgwn7ykW6pF3lYHPbJB919/GiQeGqA 8wkyGJ5ssRpFfpq2aVmaVn4unVu/lUkgIFBXw/6dPp9W93NA26cSkI4nv2f3EiNRQFH+ QcZg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q8si9820446edr.112.2021.05.18.16.29.12; Tue, 18 May 2021 16:29:12 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238649AbhERXa2 (ORCPT + 7 others); Tue, 18 May 2021 19:30:28 -0400 Received: from mail-ot1-f49.google.com ([209.85.210.49]:44937 "EHLO mail-ot1-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238853AbhERXa0 (ORCPT ); Tue, 18 May 2021 19:30:26 -0400 Received: by mail-ot1-f49.google.com with SMTP id r26-20020a056830121ab02902a5ff1c9b81so10158807otp.11; Tue, 18 May 2021 16:29:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eqsOwRGCjYYgkrBUSVZqjkvfIx+eLEI4ynYHotBpsrU=; b=mTOoIzet3oQoDbOeMP+wBxWqaEQUMBWDn+oF4eS6d3k+uBNQ0x5uKk31+89ZGGGIXB 2ijGVzyAty6aOfp5vG3OMd0A3rt+yHJMpZGfDg5f6YS426FdJdRK5PU/Gi4b2aJQgBMb 599wVTGU3CiHdZ693fRDA0aeSRvqVSquIlKee+LeTELhiJN3/WMnC43ODTG7FlnyfLfZ JctR09IYl44Iup8/BTHCgFY9S5OwctwvzlU0UYfw3Z2P9OO7/xJ1ZO0EQrgRLk7w06qL O/T4hiTqw8oPhxYWlls84vNw2/BfcoxyjTMYey2/Bqdb72tBYmaEVp4B5HqX1g6j5pd/ u3Pw== X-Gm-Message-State: AOAM530FHuOl0hgRbRu12QHBJZiPDaFS1m4yBdrJ9ARuLd+S/1hga3n9 opxvye37A+OODBt/6PgoeFJSsSkgkA== X-Received: by 2002:a9d:74c6:: with SMTP id a6mr6281697otl.132.1621380545890; Tue, 18 May 2021 16:29:05 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id d19sm3985608oop.26.2021.05.18.16.29.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 16:29:04 -0700 (PDT) From: Rob Herring To: devicetree@vger.kernel.org, Peter Rosin , Wolfram Sang Cc: linux-kernel@vger.kernel.org, Alexandre Belloni , Jacopo Mondi , Kieran Bingham , Kishon Vijay Abraham I , Laurent Pinchart , Lee Jones , =?utf-8?q?Niklas_S=C3=B6derlund?= , Roger Quadros , Jonathan Cameron Subject: [PATCH 4/6] dt-bindings: i2c: Convert i2c-mux bindings to DT schema Date: Tue, 18 May 2021 18:28:56 -0500 Message-Id: <20210518232858.1535403-5-robh@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210518232858.1535403-1-robh@kernel.org> References: <20210518232858.1535403-1-robh@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org As some of the example I2C devices don't have schemas yet, change them to ones that do. Cc: Peter Rosin Signed-off-by: Rob Herring --- .../bindings/i2c/i2c-demux-pinctrl.txt | 2 +- .../devicetree/bindings/i2c/i2c-mux-gpio.txt | 4 +- .../devicetree/bindings/i2c/i2c-mux-gpmux.txt | 99 -------------- .../bindings/i2c/i2c-mux-gpmux.yaml | 124 ++++++++++++++++++ .../bindings/i2c/i2c-mux-ltc4306.txt | 4 +- .../bindings/i2c/i2c-mux-pinctrl.txt | 4 +- .../devicetree/bindings/i2c/i2c-mux-reg.txt | 4 +- .../devicetree/bindings/i2c/i2c-mux.txt | 73 ----------- .../devicetree/bindings/i2c/i2c-mux.yaml | 87 ++++++++++++ 9 files changed, 220 insertions(+), 181 deletions(-) delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux.txt create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux.yaml -- 2.27.0 diff --git a/Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt b/Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt index 81b5d55086fa..86b2e433a969 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt @@ -27,7 +27,7 @@ Required properties: - i2c-bus-name: The name of this bus. Also needed as pinctrl-name for the I2C parents. -Furthermore, I2C mux properties and child nodes. See i2c-mux.txt in this +Furthermore, I2C mux properties and child nodes. See i2c-mux.yaml in this directory. Example: diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt index 21da3ecbb370..e00d2b9e957a 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-gpio.txt @@ -22,8 +22,8 @@ Required properties: - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side port is connected to. - mux-gpios: list of gpios used to control the muxer -* Standard I2C mux properties. See i2c-mux.txt in this directory. -* I2C child bus nodes. See i2c-mux.txt in this directory. +* Standard I2C mux properties. See i2c-mux.yaml in this directory. +* I2C child bus nodes. See i2c-mux.yaml in this directory. Optional properties: - idle-state: value to set the muxer to when idle. When no value is diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt deleted file mode 100644 index 057083a8ba17..000000000000 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt +++ /dev/null @@ -1,99 +0,0 @@ -General Purpose I2C Bus Mux - -This binding describes an I2C bus multiplexer that uses a mux controller -from the mux subsystem to route the I2C signals. - - .-----. .-----. - | dev | | dev | - .------------. '-----' '-----' - | SoC | | | - | | .--------+--------' - | .------. | .------+ child bus A, on MUX value set to 0 - | | I2C |-|--| Mux | - | '------' | '--+---+ child bus B, on MUX value set to 1 - | .------. | | '----------+--------+--------. - | | MUX- | | | | | | - | | Ctrl |-|-----+ .-----. .-----. .-----. - | '------' | | dev | | dev | | dev | - '------------' '-----' '-----' '-----' - -Required properties: -- compatible: i2c-mux -- i2c-parent: The phandle of the I2C bus that this multiplexer's master-side - port is connected to. -- mux-controls: The phandle of the mux controller to use for operating the - mux. -* Standard I2C mux properties. See i2c-mux.txt in this directory. -* I2C child bus nodes. See i2c-mux.txt in this directory. The sub-bus number - is also the mux-controller state described in ../mux/mux-controller.yaml - -Optional properties: -- mux-locked: If present, explicitly allow unrelated I2C transactions on the - parent I2C adapter at these times: - + during setup of the multiplexer - + between setup of the multiplexer and the child bus I2C transaction - + between the child bus I2C transaction and releasing of the multiplexer - + during releasing of the multiplexer - However, I2C transactions to devices behind all I2C multiplexers connected - to the same parent adapter that this multiplexer is connected to are blocked - for the full duration of the complete multiplexed I2C transaction (i.e. - including the times covered by the above list). - If mux-locked is not present, the multiplexer is assumed to be parent-locked. - This means that no unrelated I2C transactions are allowed on the parent I2C - adapter for the complete multiplexed I2C transaction. - The properties of mux-locked and parent-locked multiplexers are discussed - in more detail in Documentation/i2c/i2c-topology.rst. - -For each i2c child node, an I2C child bus will be created. They will -be numbered based on their order in the device tree. - -Whenever an access is made to a device on a child bus, the value set -in the relevant node's reg property will be set as the state in the -mux controller. - -Example: - mux: mux-controller { - compatible = "gpio-mux"; - #mux-control-cells = <0>; - - mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, - <&pioA 1 GPIO_ACTIVE_HIGH>; - }; - - i2c-mux { - compatible = "i2c-mux"; - mux-locked; - i2c-parent = <&i2c1>; - - mux-controls = <&mux>; - - #address-cells = <1>; - #size-cells = <0>; - - i2c@1 { - reg = <1>; - #address-cells = <1>; - #size-cells = <0>; - - ssd1307: oled@3c { - compatible = "solomon,ssd1307fb-i2c"; - reg = <0x3c>; - pwms = <&pwm 4 3000>; - reset-gpios = <&gpio2 7 1>; - reset-active-low; - }; - }; - - i2c@3 { - reg = <3>; - #address-cells = <1>; - #size-cells = <0>; - - pca9555: pca9555@20 { - compatible = "nxp,pca9555"; - gpio-controller; - #gpio-cells = <2>; - reg = <0x20>; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml new file mode 100644 index 000000000000..3e6ea59aea68 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.yaml @@ -0,0 +1,124 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-mux-gpmux.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: General Purpose I2C Bus Mux + +maintainers: + - Peter Rosin + +description: |+ + This binding describes an I2C bus multiplexer that uses a mux controller + from the mux subsystem to route the I2C signals. + + .-----. .-----. + | dev | | dev | + .------------. '-----' '-----' + | SoC | | | + | | .--------+--------' + | .------. | .------+ child bus A, on MUX value set to 0 + | | I2C |-|--| Mux | + | '------' | '--+---+ child bus B, on MUX value set to 1 + | .------. | | '----------+--------+--------. + | | MUX- | | | | | | + | | Ctrl |-|-----+ .-----. .-----. .-----. + | '------' | | dev | | dev | | dev | + '------------' '-----' '-----' '-----' + + + +allOf: + - $ref: /schemas/i2c/i2c-mux.yaml# + +properties: + compatible: + const: i2c-mux + + i2c-parent: + $ref: /schemas/types.yaml#/definitions/phandle + description: + The phandle of the I2C bus that this multiplexer's master-side port is + connected to. + + mux-controls: + maxItems: 1 + description: + The mux-controller states are the I2C sub-bus numbers. + + mux-locked: + type: boolean + description: | + Explicitly allow unrelated I2C transactions on the parent I2C adapter at + these times: + + during setup of the multiplexer + + between setup of the multiplexer and the child bus I2C transaction + + between the child bus I2C transaction and releasing of the multiplexer + + during releasing of the multiplexer + + However, I2C transactions to devices behind all I2C multiplexers connected + to the same parent adapter that this multiplexer is connected to are blocked + for the full duration of the complete multiplexed I2C transaction (i.e. + including the times covered by the above list). + If mux-locked is not present, the multiplexer is assumed to be parent-locked. + This means that no unrelated I2C transactions are allowed on the parent I2C + adapter for the complete multiplexed I2C transaction. + The properties of mux-locked and parent-locked multiplexers are discussed + in more detail in Documentation/i2c/i2c-topology.rst. + +required: + - compatible + - i2c-parent + - mux-controls + +unevaluatedProperties: false + +examples: + - | + #include + mux: mux-controller { + compatible = "gpio-mux"; + #mux-control-cells = <0>; + + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, + <&pioA 1 GPIO_ACTIVE_HIGH>; + }; + + i2c-mux { + compatible = "i2c-mux"; + mux-locked; + i2c-parent = <&i2c1>; + + mux-controls = <&mux>; + + #address-cells = <1>; + #size-cells = <0>; + + i2c@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + + gpio@20 { + compatible = "nxp,pca9555"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x20>; + }; + }; + + i2c@3 { + reg = <3>; + #address-cells = <1>; + #size-cells = <0>; + + gpio@20 { + compatible = "nxp,pca9555"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x20>; + }; + }; + }; +... diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt index 8b1e49cdce3f..29c4550c9782 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt @@ -8,8 +8,8 @@ Required Properties: The following required properties are defined externally: - - Standard I2C mux properties. See i2c-mux.txt in this directory. - - I2C child bus nodes. See i2c-mux.txt in this directory. + - Standard I2C mux properties. See i2c-mux.yaml in this directory. + - I2C child bus nodes. See i2c-mux.yaml in this directory. Optional Properties: diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt index 33119a98e144..997a287ed3f6 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pinctrl.txt @@ -28,9 +28,9 @@ Also required are: * Standard pinctrl properties that specify the pin mux state for each child bus. See ../pinctrl/pinctrl-bindings.txt. -* Standard I2C mux properties. See i2c-mux.txt in this directory. +* Standard I2C mux properties. See i2c-mux.yaml in this directory. -* I2C child bus nodes. See i2c-mux.txt in this directory. +* I2C child bus nodes. See i2c-mux.yaml in this directory. For each named state defined in the pinctrl-names property, an I2C child bus will be created. I2C child bus numbers are assigned based on the index into diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt index de00d7fc450b..b9d9755e4172 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-reg.txt @@ -7,8 +7,8 @@ Required properties: - compatible: i2c-mux-reg - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side port is connected to. -* Standard I2C mux properties. See i2c-mux.txt in this directory. -* I2C child bus nodes. See i2c-mux.txt in this directory. +* Standard I2C mux properties. See i2c-mux.yaml in this directory. +* I2C child bus nodes. See i2c-mux.yaml in this directory. Optional properties: - reg: this pair of specifies the register to control the mux. diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux.txt b/Documentation/devicetree/bindings/i2c/i2c-mux.txt deleted file mode 100644 index b38f58a1c878..000000000000 --- a/Documentation/devicetree/bindings/i2c/i2c-mux.txt +++ /dev/null @@ -1,73 +0,0 @@ -Common i2c bus multiplexer/switch properties. - -An i2c bus multiplexer/switch will have several child busses that are -numbered uniquely in a device dependent manner. The nodes for an i2c bus -multiplexer/switch will have one child node for each child bus. - -Optional properties: -- #address-cells = <1>; - This property is required if the i2c-mux child node does not exist. - -- #size-cells = <0>; - This property is required if the i2c-mux child node does not exist. - -- i2c-mux - For i2c multiplexers/switches that have child nodes that are a mixture - of both i2c child busses and other child nodes, the 'i2c-mux' subnode - can be used for populating the i2c child busses. If an 'i2c-mux' - subnode is present, only subnodes of this will be considered as i2c - child busses. - -Required properties for the i2c-mux child node: -- #address-cells = <1>; -- #size-cells = <0>; - -Required properties for i2c child bus nodes: -- #address-cells = <1>; -- #size-cells = <0>; -- reg : The sub-bus number. - -Optional properties for i2c child bus nodes: -- Other properties specific to the multiplexer/switch hardware. -- Child nodes conforming to i2c bus binding - - -Example : - - /* - An NXP pca9548 8 channel I2C multiplexer at address 0x70 - with two NXP pca8574 GPIO expanders attached, one each to - ports 3 and 4. - */ - - mux@70 { - compatible = "nxp,pca9548"; - reg = <0x70>; - #address-cells = <1>; - #size-cells = <0>; - - i2c@3 { - #address-cells = <1>; - #size-cells = <0>; - reg = <3>; - - gpio1: gpio@38 { - compatible = "nxp,pca8574"; - reg = <0x38>; - #gpio-cells = <2>; - gpio-controller; - }; - }; - i2c@4 { - #address-cells = <1>; - #size-cells = <0>; - reg = <4>; - - gpio2: gpio@38 { - compatible = "nxp,pca8574"; - reg = <0x38>; - #gpio-cells = <2>; - gpio-controller; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux.yaml new file mode 100644 index 000000000000..3aa4d84a6610 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-mux.yaml @@ -0,0 +1,87 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-mux.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Common i2c bus multiplexer/switch properties. + +maintainers: + - Peter Rosin + +description: |+ + An i2c bus multiplexer/switch will have several child busses that are numbered + uniquely in a device dependent manner. The nodes for an i2c bus + multiplexer/switch will have one child node for each child bus. + + For i2c multiplexers/switches that have child nodes that are a mixture of both + i2c child busses and other child nodes, the 'i2c-mux' subnode can be used for + populating the i2c child busses. If an 'i2c-mux' subnode is present, only + subnodes of this will be considered as i2c child busses. + +properties: + $nodename: + pattern: '^(i2c-?)?mux' + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + '^i2c@[0-9a-f]+$': + $ref: /schemas/i2c/i2c-controller.yaml + unevaluatedProperties: false + + properties: + reg: + description: The mux selector sub-bus number for the child I2C bus. + maxItems: 1 + +additionalProperties: true + +examples: + - | + /* + An NXP pca9548 8 channel I2C multiplexer at address 0x70 + with two NXP pca8574 GPIO expanders attached, one each to + ports 3 and 4. + */ + i2c { + #address-cells = <1>; + #size-cells = <0>; + + i2c-mux@70 { + compatible = "nxp,pca9548"; + reg = <0x70>; + #address-cells = <1>; + #size-cells = <0>; + + i2c@3 { + #address-cells = <1>; + #size-cells = <0>; + reg = <3>; + + gpio@20 { + compatible = "nxp,pca9555"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x20>; + }; + }; + i2c@4 { + #address-cells = <1>; + #size-cells = <0>; + reg = <4>; + + gpio@20 { + compatible = "nxp,pca9555"; + gpio-controller; + #gpio-cells = <2>; + reg = <0x20>; + }; + }; + }; + }; +... From patchwork Tue May 18 23:28:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 441255 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp712872jac; Tue, 18 May 2021 16:29:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyg06wTO9SbjycV4Ntx6DHJ4FtBoRZpV+Ac3YHJBqF/McH/zw//u4gSuWKirQx1W4bMft6F X-Received: by 2002:a17:906:724b:: with SMTP id n11mr8613246ejk.338.1621380560348; Tue, 18 May 2021 16:29:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621380560; cv=none; d=google.com; s=arc-20160816; b=kadT0bYc1TN/+V1AFI6KFT1hbgGiLBZRNp5kVWWnNB9mccucOJulf+p6tVeWVZVsg6 tvXXZVcyQ0z3tiMNNzvUg/IumcKE3BpOcTIJ7jgXVcfFrNE46c7dwVK9WgizGzoozbcB m0ax1lTINjjKC8K+5qjJtr4VPmnIYp9cN/3hUslXW79IBEvSssYS/2UpdTRYxvCofzYX T0Qtb/xE7+ipiFqe+Wk87wAHr8PITlE5oDSUVN1/4Ehq/M/0YN/BCOa5pkV9YcXnMI23 gyKPFH6PmQNpxfdCc+H/ERHhgrydaSq5OaR6KcyCSB7oHLFR/9gebpFPdGe8lUh68R/S POow== 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; bh=3tznLAoW/H/BXwcG+qjqbkNuE2MqDDRn3toY3xzTYmA=; b=Em5LeBnepSNVHcgEtk6/nVvxiqrYIP/OTZejm6tHgN1kVyP7DNGt9SqD8Cy7P8wnQo 5+VadkQ1L0/2GhzUoZwWvRJcwucMIbh+DmkRCai6Hnrk4Krp6S0ARnrSh3x0iz+QAqqZ WmtP31kp16ehEgllaLoVyURaRmbY3OfmwDucPDNuJpHkB6jLRFT3yujEp1FXZs2k1jB2 eNq91y0QbwRdVyYjcCOtIKvdNWAt7vv/oxfzqUf7YNqw6+VprEeYtXdpMI7PHZp2XJwc J6JDBylVotVohbUSwvOMcTCVNsuJh+CyazMWr2xm846xC77zN44n0cGQdwlkt6vyS4Il LbqQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d5si18529073ejd.323.2021.05.18.16.29.20; Tue, 18 May 2021 16:29:20 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239045AbhERXa2 (ORCPT + 7 others); Tue, 18 May 2021 19:30:28 -0400 Received: from mail-ot1-f41.google.com ([209.85.210.41]:35813 "EHLO mail-ot1-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238884AbhERXa0 (ORCPT ); Tue, 18 May 2021 19:30:26 -0400 Received: by mail-ot1-f41.google.com with SMTP id 69-20020a9d0a4b0000b02902ed42f141e1so10174475otg.2; Tue, 18 May 2021 16:29:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3tznLAoW/H/BXwcG+qjqbkNuE2MqDDRn3toY3xzTYmA=; b=M+CnmK36B7uJoiaZWyHKFqsUsosjwXm9XIjf8WH6c0Dvp2EbT9JogcinOn1gJHFeHB jsBjmtFzgEomPgPCkCGrNmalSTv0KtmecjYsmNMWbDDAT8xsY+9T0qwKATBms/QhNc+u VMt4WDjnJQZAeAjDqaA79eK5t0VLCiNgOx3YodDcXigM3H7vdpnj2Jnqq3lgE8LH+FmX 4x8wFQEvSykMCDZV1ZSWIeW6DkZRMjF3dIPFyoisnT0FHvYV2Ena13sp3YTrAgm1M3Ho /uwkFDsszlEK4pkrsmAcGJldo91XRHy5o+xg54AI1XvE0Jw5KiPKpr133cwXv7H+PbT6 jIRw== X-Gm-Message-State: AOAM533aFRXFEu+rahDuhPkGaxeGf7arl/VNNOsUU+dOc1+iIUPO+mmG /Z2uXw//YUA32afLqaHYSX/muMXtZQ== X-Received: by 2002:a9d:c24:: with SMTP id 33mr6029092otr.289.1621380547123; Tue, 18 May 2021 16:29:07 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id d19sm3985608oop.26.2021.05.18.16.29.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 16:29:06 -0700 (PDT) From: Rob Herring To: devicetree@vger.kernel.org, Peter Rosin , Wolfram Sang Cc: linux-kernel@vger.kernel.org, Alexandre Belloni , Jacopo Mondi , Kieran Bingham , Kishon Vijay Abraham I , Laurent Pinchart , Lee Jones , =?utf-8?q?Niklas_S=C3=B6derlund?= , Roger Quadros , Jonathan Cameron Subject: [PATCH 5/6] dt-bindings: i2c: i2c-mux-pca954x: Convert to DT schema Date: Tue, 18 May 2021 18:28:57 -0500 Message-Id: <20210518232858.1535403-6-robh@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210518232858.1535403-1-robh@kernel.org> References: <20210518232858.1535403-1-robh@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Cc: Laurent Pinchart Signed-off-by: Rob Herring --- .../bindings/i2c/i2c-mux-pca954x.txt | 74 ------------ .../bindings/i2c/i2c-mux-pca954x.yaml | 106 ++++++++++++++++++ 2 files changed, 106 insertions(+), 74 deletions(-) delete mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml -- 2.27.0 Reviewed-by: Laurent Pinchart diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt deleted file mode 100644 index 9f3f3eb67e87..000000000000 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.txt +++ /dev/null @@ -1,74 +0,0 @@ -* NXP PCA954x I2C bus switch - -The driver supports NXP PCA954x and PCA984x I2C mux/switch devices. - -Required Properties: - - - compatible: Must contain one of the following. - "nxp,pca9540", - "nxp,pca9542", - "nxp,pca9543", - "nxp,pca9544", - "nxp,pca9545", - "nxp,pca9546", "nxp,pca9846", - "nxp,pca9547", "nxp,pca9847", - "nxp,pca9548", "nxp,pca9848", - "nxp,pca9849" - - - reg: The I2C address of the device. - - The following required properties are defined externally: - - - Standard I2C mux properties. See i2c-mux.txt in this directory. - - I2C child bus nodes. See i2c-mux.txt in this directory. - -Optional Properties: - - - reset-gpios: Reference to the GPIO connected to the reset input. - - idle-state: if present, overrides i2c-mux-idle-disconnect, - Please refer to Documentation/devicetree/bindings/mux/mux-controller.yaml - - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all - children in idle state. This is necessary for example, if there are several - multiplexers on the bus and the devices behind them use same I2C addresses. - - interrupts: Interrupt mapping for IRQ. - - interrupt-controller: Marks the device node as an interrupt controller. - - #interrupt-cells : Should be two. - - first cell is the pin number - - second cell is used to specify flags. - See also Documentation/devicetree/bindings/interrupt-controller/interrupts.txt - -Example: - - i2c-switch@74 { - compatible = "nxp,pca9548"; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x74>; - - interrupt-parent = <&ipic>; - interrupts = <17 IRQ_TYPE_LEVEL_LOW>; - interrupt-controller; - #interrupt-cells = <2>; - - i2c@2 { - #address-cells = <1>; - #size-cells = <0>; - reg = <2>; - - eeprom@54 { - compatible = "atmel,24c08"; - reg = <0x54>; - }; - }; - - i2c@4 { - #address-cells = <1>; - #size-cells = <0>; - reg = <4>; - - rtc@51 { - compatible = "nxp,pcf8563"; - reg = <0x51>; - }; - }; - }; diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml new file mode 100644 index 000000000000..82d9101098c7 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml @@ -0,0 +1,106 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: NXP PCA954x I2C bus switch + +maintainers: + - Laurent Pinchart + +description: + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices. + +allOf: + - $ref: /schemas/i2c/i2c-mux.yaml# + +properties: + compatible: + enum: + - nxp,pca9540 + - nxp,pca9542 + - nxp,pca9543 + - nxp,pca9544 + - nxp,pca9545 + - nxp,pca9546 + - nxp,pca9547 + - nxp,pca9548 + - nxp,pca9849 + - nxp,pca9846 + - nxp,pca9847 + - nxp,pca9848 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + "#interrupt-cells": + const: 2 + + interrupt-controller: true + + reset-gpios: + maxItems: 1 + + i2c-mux-idle-disconnect: + type: boolean + description: Forces mux to disconnect all children in idle state. This is + necessary for example, if there are several multiplexers on the bus and + the devices behind them use same I2C addresses. + + idle-state: + description: if present, overrides i2c-mux-idle-disconnect + $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state + +required: + - compatible + - reg + +unevaluatedProperties: false + +examples: + - | + #include + + i2c { + #address-cells = <1>; + #size-cells = <0>; + + i2c-mux@74 { + compatible = "nxp,pca9548"; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x74>; + + interrupt-parent = <&ipic>; + interrupts = <17 IRQ_TYPE_LEVEL_LOW>; + interrupt-controller; + #interrupt-cells = <2>; + + i2c@2 { + #address-cells = <1>; + #size-cells = <0>; + reg = <2>; + + eeprom@54 { + compatible = "atmel,24c08"; + reg = <0x54>; + }; + }; + + i2c@4 { + #address-cells = <1>; + #size-cells = <0>; + reg = <4>; + + rtc@51 { + compatible = "nxp,pcf8563"; + reg = <0x51>; + }; + }; + }; + }; +... From patchwork Tue May 18 23:28:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Rob Herring \(Arm\)" X-Patchwork-Id: 441256 Delivered-To: patch@linaro.org Received: by 2002:a02:7a1b:0:0:0:0:0 with SMTP id a27csp712880jac; Tue, 18 May 2021 16:29:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwX9FUkVGjghS8PcMgZhXjav16DrpRzJWCHLcAVeC4XgEWNXyHBz97CSVuPyGQ3A/HjDu06 X-Received: by 2002:aa7:cdd6:: with SMTP id h22mr9714407edw.278.1621380560725; Tue, 18 May 2021 16:29:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621380560; cv=none; d=google.com; s=arc-20160816; b=b+EnuUhlac6Nvu6vxaUSAw6FQm2Ij6nSPex9dlmnGHNuULNZUlDnpz/MKMp7JY1dpS 1dO2CCyMiLtMSuE720tvdsxPpex2LC5q2QdDsByERywOOvBcQrPULGP3yxtnNv8kinyv wc7J9BJemKg5sF2JEJ8A/0o63+6l5i+8bVfcwu2xkVxzMvM67P/2ebyL+LOtWJuWikaB 85WIDSGsR/7zkemd+M0o/HoMvYPtlfBM+W+fTMlLtXvE749dQQebzT1cXbTguasVQpka ZBPiZeZzOE2qxFdoFRkjWJ5mtgaics3Tu4+XkWoItqHiZRejDbvG9rL8tbnvWpjul7PK pT1w== 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; bh=kaw4fdxwXpH2Tc4Crz2ymu7i5j1xi8qpQ3DL7swjbB8=; b=JHHnOs2RGqbGBpBB8L9NsfZqbTIu1Opz08LDzu0My7kJtnCHNVA7zORHgmmGxuuuMP z2okLSsv/oGLc+ZEYeM5B0qtYYeGK+jLBIVfLNJgQB6faf2RrWTef8wiECmfEidY0Qbz 5UZYd1Xa3KgWdog43WKlaE2dotriM3qyhC4uNB8Oh+PKc8CouHHgSntleinCzumXrU4H 1j8wIqi/2qIYPpYHcmaOtUgPBYBHKuyNENeKC0szoD4UtTt+8ffLix6K5HU9dbR+uAOy BjasiVtsRmWGsjTd8y0mP4tI94Bo5tAn3I1mLsde0DLhAHu283KF9z1n+K63/RVbeYgt rksQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d5si18529073ejd.323.2021.05.18.16.29.20; Tue, 18 May 2021 16:29:20 -0700 (PDT) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239142AbhERXac (ORCPT + 7 others); Tue, 18 May 2021 19:30:32 -0400 Received: from mail-oi1-f179.google.com ([209.85.167.179]:43727 "EHLO mail-oi1-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239043AbhERXa2 (ORCPT ); Tue, 18 May 2021 19:30:28 -0400 Received: by mail-oi1-f179.google.com with SMTP id j75so11394942oih.10; Tue, 18 May 2021 16:29:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kaw4fdxwXpH2Tc4Crz2ymu7i5j1xi8qpQ3DL7swjbB8=; b=Hy8sFdRpLoqNcpm9kMsE+KBYPHSy3yEOceOjy8VoDrZ6BkL/muLeQOpF6S10mRQF7o IMtcqqjx22XGXhKT7so84KiHBL1VKuT9WyjnetbxrZtFV04vBmtEGJ4lENXUz7U+WZUR 7SBdQL9Ki4BLQ1cmJR4AepcEcGHXe+9BpqsgAkw1vp4pVuPVa1VJFb2oU+XF/YlviL6a KBiDTXxA/4cYTI+yejwU2kZHbBTGiUQz4xp9SkQicDIfVaAlE3WzmaI5/5UcsS65m7If Wam0L7hcVGY276HRpxuQHrnOSzsf0xOI+fp8JXvNkSLDdZUHCagcufn5WHGQnwQKx+zZ rEmA== X-Gm-Message-State: AOAM532G56tQD6bjwmDPDFWXB4L2OfIw5XhUj4v62j8Mgc0iX4EbB+Gy sR38TIzEHgDyiqdEELB1G9Qjn8VDrA== X-Received: by 2002:a05:6808:184:: with SMTP id w4mr5599516oic.27.1621380549000; Tue, 18 May 2021 16:29:09 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id d19sm3985608oop.26.2021.05.18.16.29.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 16:29:08 -0700 (PDT) From: Rob Herring To: devicetree@vger.kernel.org, Peter Rosin , Wolfram Sang Cc: linux-kernel@vger.kernel.org, Alexandre Belloni , Jacopo Mondi , Kieran Bingham , Kishon Vijay Abraham I , Laurent Pinchart , Lee Jones , =?utf-8?q?Niklas_S=C3=B6derlund?= , Roger Quadros , Jonathan Cameron , Laurent Pinchart Subject: [PATCH 6/6] dt-bindings: i2c: maxim, max9286: Use the i2c-mux.yaml schema Date: Tue, 18 May 2021 18:28:58 -0500 Message-Id: <20210518232858.1535403-7-robh@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210518232858.1535403-1-robh@kernel.org> References: <20210518232858.1535403-1-robh@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Use the i2c-mux.yaml schema in the maxim,max9286 binding schema. With this, several properties can be dropped as they are defined in i2c-mux.yaml already. Cc: Jacopo Mondi Cc: Kieran Bingham Cc: Laurent Pinchart Cc: Niklas Söderlund Signed-off-by: Rob Herring --- .../bindings/media/i2c/maxim,max9286.yaml | 23 +++---------------- 1 file changed, 3 insertions(+), 20 deletions(-) -- 2.27.0 Reviewed-by: Laurent Pinchart diff --git a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml index ee16102fdfe7..02f656e78700 100644 --- a/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml +++ b/Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml @@ -111,17 +111,10 @@ properties: i2c-mux: type: object + $ref: /schemas/i2c/i2c-mux.yaml# + unevaluatedProperties: false description: | - Each GMSL link is modelled as a child bus of an i2c bus - multiplexer/switch, in accordance with bindings described in - Documentation/devicetree/bindings/i2c/i2c-mux.txt. - - properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 + Each GMSL link is modelled as a child bus of an i2c bus multiplexer/switch. patternProperties: "^i2c@[0-3]$": @@ -133,12 +126,6 @@ properties: channels. properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - reg: description: The index of the GMSL channel. maxItems: 1 @@ -173,10 +160,6 @@ properties: additionalProperties: false - additionalProperties: false - - additionalProperties: false - required: - compatible - reg