From patchwork Wed Feb 8 15:41:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 725685 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 3vJQT35TrNz9s80 for ; Thu, 9 Feb 2017 02:42:47 +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="YEYAKzi0"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754771AbdBHPmb (ORCPT ); Wed, 8 Feb 2017 10:42:31 -0500 Received: from mail-ve1eur01on0093.outbound.protection.outlook.com ([104.47.1.93]:24208 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754764AbdBHPm1 (ORCPT ); Wed, 8 Feb 2017 10:42:27 -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=/YbNZJD4ItYYb6iRPjPavHPeC8qhzIFkDU1U6OrBP84=; b=YEYAKzi0nJZbcay5R1oKXCe8xWuxfvSJVx/N4g5lbxKjb3iNq7E0CNduT9TYpmJ9cL8+IdGm9JrRlJ6ugl8oyKY2uGQFvdf0tSyFBilmk/ojK4VAaeF9eBd4Kods4ytW/7gfBtwBr4oijoL5/5HWwMoUVvW86j/fBpakAyJDJuc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; Received: from localhost.localdomain (217.210.101.82) by HE1PR0202MB2555.eurprd02.prod.outlook.com (10.168.184.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Wed, 8 Feb 2017 15:42:19 +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 Subject: [PATCH v9 02/10] dt-bindings: document devicetree bindings for mux-controllers and gpio-mux Date: Wed, 8 Feb 2017 16:41:49 +0100 Message-ID: <1486568517-6997-3-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1486568517-6997-1-git-send-email-peda@axentia.se> References: <1486568517-6997-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 X-Originating-IP: [217.210.101.82] X-ClientProxiedBy: DB5PR08CA0069.eurprd08.prod.outlook.com (10.166.166.165) To HE1PR0202MB2555.eurprd02.prod.outlook.com (10.168.184.8) X-MS-Office365-Filtering-Correlation-Id: 8c7fafc0-102d-4fa0-2202-08d45039123b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:HE1PR0202MB2555; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0202MB2555; 3:S5Tl5PamRbHo+U5pqKUUm3GTiipK2quna5PqTnMsQFndYWEGJSua6Gy2oAqlqtPQfU8LQIoV9JgA+jUESaJp6Yct1mPMS3ORvsicUP7/NJUNuHIqNFfw+tgNglhtN8uokOxE1ij6a1sre/diDrojA8nXRcbnSW1+zovGSm8eM+T9/wijR7UPtPz1/pe99osBB+jUIRCzVir3RvTpu7hTh4ESmKFJqucR9+ByxeW7x3PxI8WqTubwwuRs91DkxxlMM/Unuu5jgRl0PxS9zlctyQ==; 25:udqwUzzbYcTOe8oe73UMDmZ6sj16Sz/L0CWm3GioAVUBLtWI4WgFRBvOLf+CRcd+G90R1zy3UEByXzqsAjVqOy9EqycpD+RlMygG6zBaxgV2ySRPpP2CXKt2MasCAR0Z60I8v++1dutYccOd5oH5A3vdjdxTd72NtFXlBtEUkrcaKNvzjWj4VRgytuVomIuIhWi68XrkqVlLm8bKw+1M+//9MvISij9JkVECE1TpxH/pLx9RCMIIBsQXw4iMwGjwZsVpCmAQpw9VOLa3nzVHgwc/XcqSDWCi2jd5urk7y+17d9iVqHPFhyFkWfb6jya521sUMs+GN41yuRz030EkUpvf4ufv9TV50ScjD+1xKuO5jank1phMtQOJUTMvBiT55uEkCI7BBMlOefFWtIYFH0wv5/VlfeReDpym8mkTepm+aPGnOGUKARojeTFpJNMZ X-Microsoft-Exchange-Diagnostics: 1; HE1PR0202MB2555; 31:nCJvpS9z5v9hf/68TxGZaGxH6fsH2e9yx730evC1EdzkSfmzGUJmbmKMw8IG/IplVE35+KaZb7UaZmenGgcGcM+qZNkmkg1TZczlXDysXAUBD/p/7//7QaswmR4IoGCSs+3CwlynWXFQQqf/77xUVHC6kxPz+HP2QU1I9adCJdaHAwUydhX3Nr1ldTc7+DaYh0fvAL57vJSwKcTYPQCHAhztNLTmFCTq7TZlKK9Gb4zpJg1YwyGH1U60omyyqbFD X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(11668515415152); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(2017020702029)(8121501046)(20170203043)(3002001)(10201501046)(6041248)(2016111802025)(20161123564025)(20161123560025)(20161123558025)(20161123562025)(20161123555025)(6043046)(6072148); SRVR:HE1PR0202MB2555; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0202MB2555; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0202MB2555; 4:8l1y6JdR8bryKr5i3k9txYElQd+K+2YTP7IFlHsU7qrKcj5b/Ng6YNzDi+z1MDeM6jLJChsA0kHECIO2u0tmNZL9iOXqS8Nyf4fwZDa5+wyCY1poie4wrY038nMcUE/Wp9WXQ8eDhsL+5yDSPux7oK/YaDIlK1OgDDjbI1tCIcjb4ikuQFmU6iMXKHX3rj7DwyO8i+1SB/Y5IR2v0cjKqLEhopNB5yH6ud5Ak7a73xkNZL60q5BwCEIEAnoJsmXpCtG9Mzde6xf/sIRv7pgPRePCWYbVJPyPd7XtiqSxZjzrOoWU8UmAoO8TwLGmzB+jOYgadImhHPpK4fZREv6gNZWalTf+ssJhTAKcqGhJAb7/KeaMeouUgx0J6ZmFjq5VQMCCNTy9DB24S3OWdhunZi7zbrV1rjSRyD2ja0MBDCDkj/iKCovOaS3F9W1F3oO8hbiaF0Q10MFusDJuze67F7QZKH1M3wvgzsAhPxH+u1RjFZ0RiTqL/mb0qRxqtJHpAwLGSKKEeRR0VGIw0JneeJHLO3t5MwNwOoqA54ay5co36uyahl9jZrMel43j2tLd3zdfplphpsAzhuWps1/MnZiVXcZaiAzdUd3x9t5gsDGoBr58YcK3iobvTWWqAtH0mNRvYGengiYqSAxUlDY4LDR7KUPzhjceGwyuOx4IkqnCbTgOqi3ach02Z3mIYJ0l9I9vVnNN1yeYvVCIAy9Rbq9KrznvB1Oz9KmDa03hm8itubZsd1FSt2pbe8bkkBtp X-Forefront-PRVS: 0212BDE3BE X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(7916002)(39830400002)(39450400003)(39410400002)(199003)(189002)(6116002)(3846002)(7736002)(50466002)(2351001)(38730400002)(74482002)(2906002)(101416001)(305945005)(97736004)(48376002)(8676002)(47776003)(110136004)(81166006)(76176999)(50986999)(81156014)(4326007)(6512007)(53936002)(6486002)(575784001)(66066001)(86362001)(6506006)(33646002)(92566002)(7416002)(50226002)(6666003)(105586002)(42186005)(36756003)(5660300001)(189998001)(6916009)(25786008)(106356001)(2950100002)(5003940100001)(8666007)(54906002)(68736007)(42262002); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0202MB2555; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: axentia.se does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0202MB2555; 23:VR5Y87ke28s+Usx6V4GXNqfAyQNso9p7Nun3ndM?= =?us-ascii?Q?v+jY56Fn9zlwpwIfvV9ynZ6aG+NJDMb8a37coMjuLNXh4e2B0s8h1DVNtrPm?= =?us-ascii?Q?fIj+zEmGNsuE44k0SduP5dA0KJP34hhr3yZfP0Rt63EwQDtLHOkPYLNaK+iL?= =?us-ascii?Q?bu7l44dYYOLLCAgkGy/etcVs+QH8TuiNGzkHMxI7EGuwq0GsQN98DZJEW5yF?= =?us-ascii?Q?8hAWdctgRGrE6InAZwSeV3oW7IbBkHPfGQcKUJTuJ5IftKMY8fM6P05T0MpG?= =?us-ascii?Q?6+KKN1SsUpAuQNQKEZLS+tn7IRAi1StQqoNe7Ha2nP2mnZjledYPKVBL8Q6L?= =?us-ascii?Q?9Ig23PouiM3sfr/wDIqHO9P7LAqgggqXtzFl8RLFZI3oS7pFZ+B4XDyf72pn?= =?us-ascii?Q?LqaRJbB0YCPuBtk9LAHDUKyKBpbsJ/tJlAByQ74oL4vf7OD2ifiTjYAn+Om0?= =?us-ascii?Q?daZtebQf4qmc1u/6tWDEiKqsxym0mQbJ26FlZrnSkk2wh72bC5yWJGHrE02y?= =?us-ascii?Q?+cct15vG344jejQ/5QwKIZZNpxmuEYo5HKX3RhvPgMDvg524PsAqn8Vs8iBP?= =?us-ascii?Q?Cr0Irl+Ib3ioIRyVAZiMuTgVPVLap/TSTUMounWMAQOh43tvZKwIkPPmXmJu?= =?us-ascii?Q?SDPiapG3eF3TfjwXW1cgepSiKUB/b8laF0KU9tYsuslESnJkNV+Yet9hrz9G?= =?us-ascii?Q?/RDTFlAYwwztPUszFce1ARlzu8SywO4u59wSlAgGIaZ0zZuzcIwO/BUjuXC6?= =?us-ascii?Q?fuwXpjl4NZ6m3ffkaILBXp6ZndVkUh+o98+9aKb/wcpzRnafoEt2gvOAzUKI?= =?us-ascii?Q?vvKVZrRmNK0i7HGOqhB3IlN/FUqpMARPBZwoB/svDJXCwpmCs5MgTSe+Fbud?= =?us-ascii?Q?trsSPgI+TmJZXswwqFek6tGbJ8wvKV3Ew/6BW9/uTIJKKJap7VgP9nCcVhT/?= =?us-ascii?Q?uMTa2sTLbmehgSgRdz5fTGU6hNYDVvcik69R3ukamTMfGzt6s2dvRM7HqBnw?= =?us-ascii?Q?0s5nlUiwe4S7Z+KXmAXojnlq9FxKGMx7ZUkygxRrwphXyCXC/9PwCLfDrmDK?= =?us-ascii?Q?lZbjKpz8jmii9ZrESp8nZQZ8z+VMYQGIhM7XL1dUvCmLyWlq33x9XCLy/FHi?= =?us-ascii?Q?TF5I9s4Pet7x9ngxkDr3wQzUoNl0DyBlLhKkOZZxy5tnrWM5EXI0Z+hOlIoI?= =?us-ascii?Q?lpRJFqLdzHX2cj78orZ6u/aU/URA33oEf0XI6NwTJmPf/mg6TrsT2Das/fXp?= =?us-ascii?Q?K3QEJn/+gbH7kCcsBLnSAJcPUrh4ZnJabuL0s4kF8IPM8EXB+9j0np2qvtTR?= =?us-ascii?Q?1t6qHsOxIFZmUNuW0kwIU3BU=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0202MB2555; 6:fFjctVTINF0P6Y0NMYQ2B/SoddFsN8XuFGxsVEWsWTFOid8hrNI4F7w/6FlAXhM+M9S5qqrw7q+WHBljxxv0r9PNUJuOafbuE0iyhasN5KsFOMTnCTE2z5mP93wXv5DcpeK/MRC/Io9XYGTn8qs7c4Gt27Tf15lDG9CNrzqTooiFLb3gnwdyqkDlkUBA+Wlq704CxmelI3KaAjNT3pTXDY2dsyi6O8137Tans2e6vyZ/AGF/cAMgavX4CqDb+8ESTLyBpAgl+oVw8Q/Dnq+gGNhN/B239XFFMMZuu3xZ50ZSmEr2SuzTx/e/c8m7IwuhU2HQsZllO3Howo60OKGTm96tyk4pPyaA6zGRaPWEgsTPE+glAn6YaiJo8YvexBN3CFJ7q87JU7cRa+PaSUZv0A==; 5:nm+oGgYYVP5kEbuKyEgBVRnkbqyHDXuAfFz3QfEGCh5H4oro4pGh6m5ADYNGhhf4E9gwsve9nkbyANmHw9U7GTHm30vAb20vkai6Kj2iNMpM4KBqKkxyvo8MA5UoirHBgmz6VJb0/mX3NzkBYpYyHg==; 24:nvUOJcCgObBV6DRyNqYT7txcjwPiZR+b4WbBuRTSM9ZvXq4gw24HFGobIDrXg5vGv8rQvVYF4VvHl2jm4US0Wrw8NItFFebPlZOweuhSJ+E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0202MB2555; 7:Z77EMicDcqt/cpHgPtK078EbsQqqgTRy0qU6Sq++5vX2tr5FTDmSLk2iGJY5qOd+iGFr5LitpsNBfRRNsfyNz+ioLeDNnY8q55TrL+M5hILB4HpNgV51vLMj/TN8WJkFmmhp33HcILmCPlWm+11tduBJs5oFc+eRQM3bjRC4gN2baluhLSUmmak0UnCWGMXn9SlymP5+ICWK4M1X51K98bxNbz1cEXCU6iy+Pre4NaoJkzm6mozE+uS488hbDhTHIruJyUB7xhPfgXpOfpqkQjtOOfUs7/Sipi1OhJD3+IzDm3a15svtXkveeU3tZlkzWqlvfVJ+vWxANKAgG5V2ipOgCXlgEspq3M2HvSZGyMjMmXWhEI9hiqxSgDkyo4ymdLDdSzKBH/EntWbqlXWbkDKgEZ/Jdu9zfzqTE/LjaHxccR90b2UxFBNVHXluLijwehkILHASLMjJc6U3jPo+QH4BhqPSlwlicUWP7WsByXpz7eNBq8yNtp4HUTRA9ij3w1VEV8fMuliOZWE+o2DjTQ== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2017 15:42:19.2786 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2555 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Allow specifying that a single multiplexer controller can be used to control several parallel multiplexers, thus enabling sharing of the multiplexer controller by different consumers. Add a binding for a first mux controller in the form of a GPIO based mux controller. Acked-by: Jonathan Cameron Acked-by: Rob Herring Signed-off-by: Peter Rosin --- Documentation/devicetree/bindings/mux/gpio-mux.txt | 69 +++++++++ .../devicetree/bindings/mux/mux-controller.txt | 157 +++++++++++++++++++++ MAINTAINERS | 6 + include/dt-bindings/mux/mux.h | 16 +++ 4 files changed, 248 insertions(+) create mode 100644 Documentation/devicetree/bindings/mux/gpio-mux.txt create mode 100644 Documentation/devicetree/bindings/mux/mux-controller.txt create mode 100644 include/dt-bindings/mux/mux.h diff --git a/Documentation/devicetree/bindings/mux/gpio-mux.txt b/Documentation/devicetree/bindings/mux/gpio-mux.txt new file mode 100644 index 000000000000..b8f746344d80 --- /dev/null +++ b/Documentation/devicetree/bindings/mux/gpio-mux.txt @@ -0,0 +1,69 @@ +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/mux-controller.txt b/Documentation/devicetree/bindings/mux/mux-controller.txt new file mode 100644 index 000000000000..4f47e4bd2fa0 --- /dev/null +++ b/Documentation/devicetree/bindings/mux/mux-controller.txt @@ -0,0 +1,157 @@ +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/MAINTAINERS b/MAINTAINERS index 01b1719bb1ae..8a0adb1e6194 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8495,6 +8495,12 @@ S: Orphan F: drivers/mmc/host/mmc_spi.c F: include/linux/spi/mmc_spi.h +MULTIPLEXER SUBSYSTEM +M: Peter Rosin +S: Maintained +F: Documentation/devicetree/bindings/mux/ +F: include/linux/dt-bindings/mux/ + MULTISOUND SOUND DRIVER M: Andrew Veliath S: Maintained diff --git a/include/dt-bindings/mux/mux.h b/include/dt-bindings/mux/mux.h new file mode 100644 index 000000000000..c8e855c4a609 --- /dev/null +++ b/include/dt-bindings/mux/mux.h @@ -0,0 +1,16 @@ +/* + * This header provides constants for most Multiplexer bindings. + * + * Most Multiplexer bindings specify an idle state. In most cases, the + * the multiplexer can be left as is when idle, and in some cases it can + * disconnect the input/output and leave the multiplexer in a high + * impedance state. + */ + +#ifndef _DT_BINDINGS_MUX_MUX_H +#define _DT_BINDINGS_MUX_MUX_H + +#define MUX_IDLE_AS_IS (-1) +#define MUX_IDLE_DISCONNECT (-2) + +#endif