From patchwork Fri Mar 10 11:10:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 737363 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3vfl581BRyz9ryQ for ; Fri, 10 Mar 2017 22:14:04 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=axentiatech.onmicrosoft.com header.i=@axentiatech.onmicrosoft.com header.b="IrIzxuRH"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934774AbdCJLNX (ORCPT ); Fri, 10 Mar 2017 06:13:23 -0500 Received: from mail-ve1eur01on0118.outbound.protection.outlook.com ([104.47.1.118]:3671 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S934600AbdCJLLg (ORCPT ); Fri, 10 Mar 2017 06:11:36 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axentiatech.onmicrosoft.com; s=selector1-axentia-se; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=4paOfEu9FeHKWAGFTLKNdXx7o8Z1tSxxlsrPYDzNN94=; b=IrIzxuRH+7hDsXR2gUgDX+yy8b/X/JJcytCKIEZlffhCToaCxuOatZnj1prYhvjnRt4Qru83LCu2xmZ2TdGZIhE2qTXnm4NIDHIVoHuNCgpZOmlXp/s4U9kYAh6zHBXT8FrO/s2OQ3Vq0UpokIs7YU8poKg3itXW/3fCMzdpRjA= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=axentia.se; Received: from localhost.localdomain (81.224.171.159) by VI1PR0202MB2560.eurprd02.prod.outlook.com (10.173.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Fri, 10 Mar 2017 11:10:40 +0000 From: Peter Rosin To: CC: Peter Rosin , Wolfram Sang , Rob Herring , Mark Rutland , Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Jonathan Corbet , , , , , Andrew Morton , Colin Ian King , Paul Gortmaker Subject: [PATCH v10 07/11] dt-bindings: i2c: i2c-mux: document general purpose i2c-mux bindings Date: Fri, 10 Mar 2017 12:10:01 +0100 Message-ID: <1489144205-17427-8-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1489144205-17427-1-git-send-email-peda@axentia.se> References: <1489144205-17427-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: HE1PR02CA0050.eurprd02.prod.outlook.com (10.163.170.18) To VI1PR0202MB2560.eurprd02.prod.outlook.com (10.173.79.139) X-MS-Office365-Filtering-Correlation-Id: 314765a7-e89d-440e-dbe1-08d467a617df X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:VI1PR0202MB2560; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0202MB2560; 3:Ypq5hpR4hLDNPiQSdhZJUVJMngcqSZgoftUI54EMAflca2rLbzF/m9+zf+5kejWMHKY9NIrxUMKGGbITyC78ictQqTD5Vzo/4nZ+26l9vg9vItvFOxHU6MFg6rO6b9MP2v/sa723VpTS6MsQ0ITZL2bee8/eA8RNBhQPBxOaPX6iAcp+FQ+KuyFsYqsynW9Tjz11Xc5eoNxtM4+2PZCGXeeX97usvK0tr9oQP2eTluVMqWB9mKlDIxFZdRstrVvqERzHzEqrAylfvJ7Jc80v8A==; 25:2LDJ2zlBghbXPY9fpG4x9drmllW9Bvv/WG2gmdkFvvg2KrK+Vyn8UjGDopRPguNSfWzBbi3xH7XnuUJ0kMtneghzUQjGIp4bBVGEbZhQ+52JHF8O9AOd6f4DjyfW9Qi7A1LcmxjCu+Oayul6G/H4lYZsh0X6NapErnxfTt2Uzjkc6tT7cVj2k66nB/Kqwmk4j1OPAN57oFixpoQ3bnKHWfLnZOfxGwKoXuWauzYvwZJ0TXZsPFcpfGz8hYEDrrhoQBd5IOJcUWXctSvyclSSZ/yDT2h7/QO7RQ5Zg7VZlvj+f5Zh6NCqNqX5bR2cADDMO0B2SLQ+ckoudHjrgEhqJmClerlsKvpTvmd5+lTyKQ5cKt9iRIREo3IP+WUraoFtd401s48kgxliqnLc26/TGUMvYECbecFdhfOtFLj2uu6mam+UQCucccsup1OANSHO9riN7AOnuavz0yodO63LMw== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0202MB2560; 31:WRjuNDmEtCxfnqdMT81Mb4nyDK57Q4RXO75S70a2GuhSzuMI0hR/1B+8Vz1XvXrzlPNGMQSR1fgvWNbJ7l7XiWtqR+3vBL8GdpnOOLispRnWO6tEX7d6QXV6U8isRnSBQYdHDy5YS4i4/iMt7SR594NlMfR0e9vKvzKSmo9ippKs+3IsdiqZaMQj6ZEMuKaxvD9Kbm0jwv6oh0IyTZY7H7+X4C54igLiW7IioArbYXifWSQFH0OFWIobDGMRq3W6; 4:qVe4uIH7I1qdPOL4gw3MFSKpYVB+x2+d6INPkwVAkskZFalie32GibwAOUefXH+HzVvaO+ccK1hLTlUuynm8BU+zh1PqxBnnaR+d4isCZcNICl73iu2s2c7d0AvMUDYY8srmQfez1TdD2udTDQTKn+vlDXINmokt79ZpXEIP3hEZsr/wg2WzhGUNvGxm2n9rSIbN/1cdV9l5m7SLW9VTA2lnNXhNs4x6JDFGbWrZYNBWixtp9uxX6qu3yoMtCml0LcvRkbMLBoY5a1KDCQebZ6z37QIpNvUCgY2CBAWe1NdaMWBUYaqPId3TzwZyYcZJk+ySPqQsusgt7AS6aUKSo4V3R9qaFLardOYujHibX3jBQIxZID6J4Grqgkc0/UoVWYEg6q3VzSSUGya1ljEnpAp3+LhBhRozU9QyB+UmuR9446kZ392QK/0Jvba2KuVjsi4HiNzNzGudLoAWErr40qpHaD/nHmR3tZi5+KaKG/reYVtAHdB/cvESBTXvgoqBeKyduoO/2/8QOv/fX6GscKAGzaNRo6co7nyOwtpoehPIx3E23nEHPuY6xRvStJsLSrYAKYeYJcwqY9nqQWA35FGpYAb4cPFAh9LbdIZyMEGG6LNFlKxgTwxMNNfTOy9NCIngOpOJdY5i/7Y6YaA7pEWJ48K9U8QSalbIlmBaF84= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(2016111802025)(20161123560025)(20161123558025)(20161123555025)(20161123564025)(20161123562025)(6043046)(6072148); SRVR:VI1PR0202MB2560; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0202MB2560; X-Forefront-PRVS: 02426D11FE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(979002)(6009001)(6069001)(39840400002)(39450400003)(39410400002)(5660300001)(6506006)(8666007)(6486002)(25786008)(42186005)(2351001)(2950100002)(6512007)(2906002)(68736007)(6666003)(38730400002)(6916009)(7736002)(50466002)(110136004)(54906002)(50226002)(4326008)(86362001)(48376002)(551934003)(53936002)(66066001)(47776003)(74482002)(81166006)(50986999)(76176999)(5003940100001)(189998001)(7416002)(305945005)(8676002)(3846002)(36756003)(6116002)(33646002)(42262002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1PR0202MB2560; H:localhost.localdomain; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0202MB2560; 23:RMnu8oGmJr3rA3svefqjqoow21GCCPtgD+ICwU6?= =?us-ascii?Q?Sk7QzOZ0+bOXCIEq3Nanhq0ynLBpKKOg6mp5KKfnI75D5EB/TJrAL1YOg/Gr?= =?us-ascii?Q?ur+DmEYM0C6BjNkjIyxTfWgrqesVPnJIYypce7MwPK7jFp6OoOPDpQwWw13h?= =?us-ascii?Q?onoS6a5sMlwBcQMS/N5SrIJdT3bpif9geaGJ4T262+IGTWOeaQY9aVT8EXq6?= =?us-ascii?Q?vxmKwV1gv0FDBn5ew6EkouApcCjdXGFKT56uSdlW/4JIvnSAZycZ1+25Pb8I?= =?us-ascii?Q?YDFPmHxKF+LsALNr25zVTaInl0oyNCkmOoGIq19ZJc8V9fP1+1UKfhIN6G/N?= =?us-ascii?Q?bF1sSZNtwF6EySgS+UitAE7bpLlHIP0kbFy89xfA60wrQqw5Gcuiqufyw4/q?= =?us-ascii?Q?xRyaxTo7HB7GgBsVp/f0fwjztdAUcUKor7mDrQQZ0xvLZyCCpRzGP3BaYdAx?= =?us-ascii?Q?7dTfiJlKMKch2jWVfPoL4fmpaT3U//DBx6agjeqkPxQItDNRUQ1sVKz5yUiC?= =?us-ascii?Q?u8/9BdUfTQodRw/FeuUqLUI5bbmGg+I1mT1yc5xKkGpfD5R8dj75kkzqLnRt?= =?us-ascii?Q?VtQ8kgwEZAJLF8ERU4t/p2mhl5Uyo0hcA/7if8X+L4ve//bD5OmzgWJ/Nthr?= =?us-ascii?Q?MbXPdVzgfvnl07+GdIFYL8ZcloyVREo2Wqi7T/TgEHBsePHAytod9syMIw5L?= =?us-ascii?Q?nsEePmaqFFyI7EXnYOafA9jkBE87AjYMdMcFZMRGsANhjXxHvM/00+S3TUZw?= =?us-ascii?Q?5P6Oupkk170uLvb8TCh+rP+PsySSXuIU5jHrj3j5Tr6edli9IGCO5rAIEUB4?= =?us-ascii?Q?9lM9QEqYT9J1sCWHLmSvN/2U4M2Pajv3zTBuxj3vTtGkBKyLj+1Zwv1m4gSB?= =?us-ascii?Q?ulTxKxKp2xiqb4mnbuPTn1MIDEioUl9hF/Gojdazo7ctfSO/MnGIrEOqabws?= =?us-ascii?Q?d6x9SkxysN46c4GQxmWBcVVZBZAFH3T46fk1iiyMV1QWOzC8itqbiMaGY0LE?= =?us-ascii?Q?DmGEd/Y2UwGZduNU48GmwBJXesGUDxdjPUaOSdppry1EBPCATAsRdocl1a8c?= =?us-ascii?Q?IIaJfp4KDap18t9jdEHe7mh9Q936oPDVyU75bf8LGWboH6Rpwxa1asHjfkvk?= =?us-ascii?Q?1PLzdOzk+nnhEeV4pVDA7OiuD31BeOiwE2dDWD7BR0nJgxU9hv7uXkgjD/ZA?= =?us-ascii?Q?F4glKR4ShOWbejhS7Rr0PbDeWWi9HirT07fxWtTShjIsD7xMPbM40139vAQ?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0202MB2560; 6:NrVJdYmRX2mdyG0+lC3xofB3SoWfWQhqhMYFbui7QXQMMNoee4/FaR8qOAI3lVq8WY0/ajidcqUPt3XyNCoXWQhglMj1wme7PU5HGVB8oqt7btW3YDOdPfBCV9JoZI96jgO/yNUsS0QhljTReTvPHDZxSPt9UQPDcwcB9GGH8LQHqRIFJAuW/q7Qr3mBtrcBymjnqJbyr7oSCFCz9PQGAJFrUJw4TLWef8C1Mj1Llc3ZNdoYprw91L8uUxTwNcMHBS7OtYMRXEmFjOiBDDnA55tKg3wlLEqeHYaZOdsMm3agKDiOMTJfOclaGzOwuNhd98xxONE2pFQSju6/CGPzfQr7BdXVe9qyjKIIruBf3ZZ4nkr2MIXiI3jNvVNELYTe5FUrqhAkZkRVZ14ggFtZMA==; 5:ubo+sZovxmFyS7ngqnGjjLVqCh8eG6ltjOZQqIQWfbE9vxqr9Jq5WmrLIiZCdQwOGF8bnrtM1NF6dlTLUMDNf/FXpZAfD1fpstQQOx8V3uVkbusFLZIy1AXJWhp8u4R4pYUcf79olxiz1lx9X+0Hx0pGZDPuxFCv2pkzlv2DLuE=; 24:R2r/bpOgjEeYJRjgPMFSNmOHRU0txNKc9oYqzJIc0re7a/F20AfKoZSBPsSG71ml3KbFrux4ooWzgm9ljVT7xn9mq/wVpHJVjXP9VLVlk4E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0202MB2560; 7:wQO++CPON4CBvuhItxnSFkDv+3+2qP7nmGZAv/C/f2ya0n4ZPC/jP4cN0bPIJpX5X57JWWrefUeOcpFifiYHTsXKUS6mExoerHW1fHreWl0e55Z/miW4gKmxJ4sc+WB+uKfOt4vx5gUXRJ6AjdhPyU4NH6gsz6/ei4qxeQA0t3yiEscmcI68+r54U31XF0VEtttVtCF/+cFMZtfGNmtVOOIFZbVyZKe+zz0k1Nz1jxX0HqNrhwEXCVYiZWtWLcOTvE0H42n1vb86KbUaJj8TFbZPdcQGoNs7G+Jkqv5Y2Po9sCZ6nJ9ebz6XiE6fAxE3RmpA+YlHUn7ujGfv6MhT1A== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2017 11:10:40.9017 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0202MB2560 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Describe how a general purpose multiplexer controller is used to mux an i2c bus. Acked-by: Jonathan Cameron Reviewed-by: Rob Herring Signed-off-by: Peter Rosin --- .../devicetree/bindings/i2c/i2c-mux-gpmux.txt | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt new file mode 100644 index 000000000000..2907dab56298 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-gpmux.txt @@ -0,0 +1,99 @@ +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.txt + +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. + +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>; + }; + }; + };