From patchwork Mon Apr 24 08:36:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 754159 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 3wBKVG2t5vz9sDb for ; Mon, 24 Apr 2017 18:37:58 +1000 (AEST) 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="ofZKGMd5"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1166968AbdDXIgs (ORCPT ); Mon, 24 Apr 2017 04:36:48 -0400 Received: from mail-db5eur01on0092.outbound.protection.outlook.com ([104.47.2.92]:55803 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1166898AbdDXIfs (ORCPT ); Mon, 24 Apr 2017 04:35:48 -0400 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=ofZKGMd5CXqvzDFBZKWSmMQ71YhKU9aJxvEzVy37a6oxiFU9qNGKOIJ+a7H4JqQWqRIThYvPCWANS+ChuAKa64ADxteY7NpDHm6JycAaCO9eK9MGRcmAS5RePE6psv2/0f7TK8xl7ZJleoPkp2yXzq40LAwcAqjdAjPtVdAf7uY= 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 AM5PR0202MB2548.eurprd02.prod.outlook.com (10.173.89.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1047.13; Mon, 24 Apr 2017 08:35:17 +0000 From: Peter Rosin To: , Greg Kroah-Hartman 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 , Philipp Zabel , Subject: [PATCH v14 08/11] dt-bindings: i2c: i2c-mux: document general purpose i2c-mux bindings Date: Mon, 24 Apr 2017 10:36:32 +0200 Message-ID: <1493022995-16917-9-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1493022995-16917-1-git-send-email-peda@axentia.se> References: <1493022995-16917-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: DB6PR0501CA0040.eurprd05.prod.outlook.com (10.168.78.154) To AM5PR0202MB2548.eurprd02.prod.outlook.com (10.173.89.9) X-MS-Office365-Filtering-Correlation-Id: 3485e9c1-2b79-4789-1d53-08d48aecd75c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075); SRVR:AM5PR0202MB2548; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 3:ijBx0VSLKXMu6cCyYTlXExhRS3YymC4F9zXsA4B90vyV75BmPQk+BuFLGQG80xp6yV1w7r6vFFbpDBskUPO2e/IDGnlPHUv1MEEC5ssoL2E/iarqaQu/cGZp/ZHPQuJjNWIjmmhE+j5g881K8TdxpxQFoIEsFVUYgtnoVPbteffVD/KMIW70PD/a+vH/INQDbGFZuk8KU+3H91odaQrrLAZl5T8XLvtn5r0N9mMUFR0RsQysObs0H1wUnP7G6/Aj5SWZLAX+TZ2CP18//ruK7SCXmX09MHw5bRaSFVgVTENwt0Wlh1saKwxb+H6UzZ4R; 25:2d/7UV5xxhTiX0f2oFlXhQpKpN5+tZGxOMqm0t7MWRY2mGnHg51W3Hh1M34xuTu26kAtiKaqDHs54Rj4vicANVA0M7vCkeqr9x812NE7nBsKxyFDq1WVxYtF+WoDa6yaSJthAXLgl+Ft0c6apgdxQVqVceO/UED6EP7ZyHNvc6jpL+zE8XqXmSsvWyKPCzj2CiybqcISbeT8HGdes4M05mE2hvRFK7S7H1edmq/Uj3+rK5v+jcBmSX/epTIS+ZRE21T5NgaTB1vXLxeGmadHL4XU4L0/btEMqO94N44tH81MOo86zrWQYkhOHOvWw2WAcIaTKNwbJH997rukT4peUIxeT679SXfYJFwLAitynX9Usq0UHdeqIRz6TInyQRmkMS6rvcz3jZBH0WwAE9b8ZNBqAAMTpTpze2sTKFKId8Yef5qmGeWvFzVSI+OXJUcEA0ymghZc+IVbL4o4OG4crw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 31:YDSO6S4XWz6S6Gv7XcOoEuwHTKz0vjZ4TNp4DxQhDNx3y91BuXIqVFsvVYn4Vwi1bf71zutKoxcHChyIKK56rvV9MOT1nbqTxlXxPlMOSrwidOE2sIGGPOVz3mWSlTHrzD6HKDQeqVU5LCRBppddqGzuQkOTl2YPU28pdE4ti38ms9Ew+M/h8f2cUN9ZYX3nDHqbeLnx5k51pSSL0x7gQRdRHr37JfdUGI97xlWBZ2kPgd7iU03ZtqRu3ClMWz+z X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(20161123560025)(2016111802025)(20161123562025)(20161123555025)(20161123564025)(6072148)(6043046); SRVR:AM5PR0202MB2548; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0202MB2548; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 4:t57Is0/XwFjwIROq0Dg7fR6yA6PG7jYL3wBDGPZKK0Xkg9l7NNSe7nKaYf+Q8OidLf3OVCXhyhDlaVmfMBVmnffZPW0RNo575e5hhZv3la79t1L7l8ZhPuLeNE0w0rmGGDty2r3VFKyJv9HVRwn4SMJyqPvXL7Jr8B3WMrVASsZWS5tZ0l8Jc9+CQMV7hfmRaKqxd1TLHy8JjRrzC+3OCXWbpBJTtw3jUi2XErAY7RFhVPGKi6nGpwbij4EG+M+uS5M2noM5niLFtL6tGP6s4XLF5XxiPrKOORXcSG2AICll1ajH4pbo1F3vVC8M9ynvLJUU6lATUtOZKKdVBWPu1zZb8NTMBILF6JY6PjJkVhLozr4VtflFyU8maC03wLfi3Fg6iMBB9elmLLAZ2dy6Dp+AjIti0QeU6/PRW/pqRsZiyNBj7B3Y8Op2bPfI+dtnRoRNWZAJZxZdOz0M64a18rxU7NJM/bADYMH23mEmt/0BqeaScZFczMXyyyg3U9CS6xsZXaknk7IqjZt9MZJdAOE9nsWV8myjFV6QV9cSncXA0x6HXEFDNtEzKYoxs0FVZwly7twLJvdoSrDnNnjvtURfrjqZ49gysFICgqnCc5ZO0kfvLxmaoFvqtEbdnaCqOgw4xRnpYAE/XPUOhDsUSLBO8SRkTGnIVlyetnoEsVvFhMSGHxQZ+vtPcZXlPUt7B8TzbVUerP4ouKdn4RlQsv4Rp64qB/I447J3kmqDDxtgITh0Km1H4iNYlxYVpYRGJ6lvLdZK8MDgMtrXRH8MRQ== X-Forefront-PRVS: 0287BBA78D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(39450400003)(39840400002)(39400400002)(39410400002)(6506006)(47776003)(4326008)(189998001)(6486002)(42186005)(8676002)(551934003)(50226002)(81166006)(50466002)(48376002)(38730400002)(5660300001)(7736002)(86362001)(6666003)(305945005)(76176999)(50986999)(7416002)(2950100002)(54906002)(8666007)(25786009)(66066001)(6512007)(53936002)(36756003)(5003940100001)(2906002)(74482002)(33646002)(3846002)(6116002)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:AM5PR0202MB2548; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0202MB2548; 23:M8mjoDfeDgnukI2SkJ4xpJ6wOKGWm+WLpvYUUD6?= =?us-ascii?Q?0L+T4ZqaUpTn1RNhTgGTzJTW94ZRSaRg9GtX17KdGWLeSWUmuEj4dFCcaWxl?= =?us-ascii?Q?uWUzfzTVuvtYebuoHplzm5P1QUom+eTDuwZOhFP01LJxb0fp68vqsdGTPWOr?= =?us-ascii?Q?1SDM4tyjDZNCRSPqFYyxoxDIh3WvDYSjU9Q/52jtK7aIUzMp2UHGmZzPTyt3?= =?us-ascii?Q?sY0OIwLO5/c2PzoQbbfYwi3N9zcxSXhHgK4blhDNFxbRUbrSk1cd+CT0geeV?= =?us-ascii?Q?eILQozcpv+f8v/mR+MuMmdo6XGXL//t/tBdZ361m4/dRsdy7NeXg3uahpfd7?= =?us-ascii?Q?MtMrPY8MtTUTykUPn72DIdUSJKK3z0KOzB0vJxBly56JX/tFyCETjiN2ZRW8?= =?us-ascii?Q?w4qVCGllvjcDaxWbBZa9Dj2iXYIVJa6SmFlX9TtTBHiGaNLr6VfEI4tQmI3F?= =?us-ascii?Q?gSQfey+87R0E6iw9SDbA9a1yfpwOzVE93DF5J8tRp4seokUp8rQzp3LcNahV?= =?us-ascii?Q?uWMV5spKYujwIBXN+Z35KOOJlIbFxOvKwtsxz1sx+4Mw/2GlOpnU4SUppDlK?= =?us-ascii?Q?Z+GRKvgydtgu4/XJ5ZHDMmnL/DIjBIss5DSwnLVgtdf4Sx80xhg3a26i08hj?= =?us-ascii?Q?qgWqZW6faV/9NoPnHW+kLFhpWryZExab30gywNJ2KQwISbnuPrMijSG64kJH?= =?us-ascii?Q?FBXPBkP4ICUEW5L8YYjb+dVd6GfywfASQAzEYFnvT3zYslYtru3Et0nDOC2a?= =?us-ascii?Q?Cul7jBJZycqe3L/uaRqISYs1afQuGLUhS3/hIYXXAW58MvZpb/Mho9zcL68B?= =?us-ascii?Q?vEHHe8F+pqL/mRAzYkxpXPN/tun9TtS3mBWWGpMKAXaQC4G4pOfRb0TsGIuL?= =?us-ascii?Q?pnIPJ2ZQYUL2HccVY+OH2G3JoT0rSLXPA2IO5VF2ZzkaF3D+i6YclHTmwwZo?= =?us-ascii?Q?stY7dQI1+B9yNrBkTZ5Ehdql1t0oM7YgOjDEN6SGMsO4apPnz9U7dcGXp6jQ?= =?us-ascii?Q?HwssivjRH1ed/oZOM5Uo3Uc+4Jn2tamr39ZCNK3+MskyHmgZWdp5yalDEiZL?= =?us-ascii?Q?RaP+f5LOfqSzgPrfv/DjE/fNGF9zc?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 6:uAnDr3Ye+TtKObgm4E3GNb8DZRBq+7lB5K9UJJKONDSPKMgg3GLmr0+H2q+UopKRsqkI6+YCQCM99wDadidqAhbZwzqzEkU2pIQJWJ7hQ6MM4wp+k17yuHiCQ7cFlqmOVOIhTkatDVi7BY+dIFRjHLgI+5lpPUjFd3R2l9tOM4LvkfyDXxiF+pMWekvfTxgttGzQd+y26wjC/EF/juCHWmae5/Ms2u0P69lW60KwqokoTGuHYBeAcJk2GyytvF4cYJPErZmhGhqpII2DaklMFsh5lK+ZoG3jpLeH/Qzn8vqe58fyrUtJo2S/MRMXNJWzny+3Kf4QhQrwryrgTv3zscI6DKHGhIWOJ90U4KwnJIcpBQpGY+6wtlqLZPvgE9u5KiqtrBJLPrv3zHCenhUM+dMIge8VlXcvrN8ltqgfihTjThY0U+RO+L6nqsMRnhVk/CsGvgwL/V8ZFP66SWGBmM1SaDYZJ1m+d9C3mYWkSD6ZSCR+2e9sgMCkx6H3H18/F/l7u8m24YgU52MWJ9LfDQ==; 5:wDAE42H7ytf2fulIaCiIvPR0Iny0YXcCyg9WJey0dQb67PZzVzSYavCwDwqD9xKV5sAV12lSpbLaOYiqSu3AQc6nnSFq+GBUtxdzwPcQwEYX3bi1oK2f9iYMxDKzhAquaiuvVlR9JdsLh7CbOGUHbw==; 24:xwUrzj2sGlBFhEZ+nsHEBsYMW3ckc0vVTIfTMKY6aw2au1Xuff5xzY4pIfBtWpZdAhPtf6mVFmRA49kNfQo5l6F0PYNDah6k74eh5bks2mc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 7:IgoUV2UU+iNl3Fv4x1mi/eRJR5vvQZP2GjZ2PyilZqpUpcYlsZWEh0GBHrb1FDuueci+k7J80o2Jh2tn9nOkjSfskUO4RveW60sfHwHdlbnXoMoRN3FV9IgsrrguAyyjKaZlYT1s5jkRG+ZOdQr/wLrZY99J2FwsaYqlqzJxhg9oAKHj9S6S9IdUo4WZZvwuxOqMJxZpUmHbtF1LdRnTW5Xs4bX9ga3sj/0NzMCZpCMBDgg9RWOPIt3uyn1XE0Q3om0V9nXYDLtNdCKSjqWKeK4jvK5pn/7GomxppHQeN+bmPsoE9mzmHGP52MGY/8oSO61xJU0n7+L4v+kwWp332w== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 08:35:17.2541 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0202MB2548 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>; + }; + }; + };