From patchwork Mon Apr 24 08:36:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Rosin X-Patchwork-Id: 754147 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 3wBKQx5cj7z9sDb for ; Mon, 24 Apr 2017 18:35:05 +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="slLzqfw7"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1166789AbdDXIfD (ORCPT ); Mon, 24 Apr 2017 04:35:03 -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 S1166826AbdDXIes (ORCPT ); Mon, 24 Apr 2017 04:34: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=EMezxtgBB17C/tRZUgqbtorGdoWgcivHkI2/WlqW5gM=; b=slLzqfw7izgUQtlbBs9wYRG6rzSUZI9u/uKO/+Zceokp4wAxzSRGNB7uMoKsSfdbZowuZRvGzUevEoinAVDAnEEQxlsw7dNwyL2RXNB+Z7N4MmH3A+mBXOxMNCY3ZOWOTh6MZE8DEYNuZ575bPS66N7uvwYrtdxwIFlVgKERknI= 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:34:42 +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 02/11] dt-bindings: document devicetree bindings for mux-controllers and gpio-mux Date: Mon, 24 Apr 2017 10:36:26 +0200 Message-ID: <1493022995-16917-3-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: 5b22dc41-9d7a-404d-5843-08d48aecc278 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075); SRVR:AM5PR0202MB2548; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 3:LJ/SvuSFMvi2lWLo37v5++sqT6ulYEcy0fROBzKRDEaFbcBGCdzxosUIfBF/V2EnP6+of/UU6kwKOeMgefs+TR9bEPiok77HjO70r3yPlWcnTKqVAotT8k90luydAROPvN2xLrhzuppy9QsgpDKintBL1bOGKsPVvs6MUAgKhayRJiRqxyyt0Fet6ZQzz0ClzXn63Tut76ZJlnbyyrSIGkczq/8pd/YIzMPjmsZ6Dpt6a3AfpuTK5SHejggYG9+7dMe/Vb9HT+51gUmYr1At34XMuVYKxX5F500FhksZpHY1Fb3EoBCGRFFG5m60l0Ht; 25:8KBY3KHWz+jDBVxdnTwCY8Q0wcFGITA7iWhamoi1eM3wxmrUGMf8TEpVBUU7Q11y/+P0kh0oWQG9LkdWDyJQIXy1Be/KnZTjke9fOLvoZBnLEiKq3AAVVMixDnfaB4GC90ONZ0r8lfkn6pM2+AdthcLUS8efd+BOqXWZ0ei7QkxH459BkIDtk14yw/aoK8kfLADDEgW2iJS9X+Y5mlDF96rSMb9+6Gkcp8jQ1n8ua6sTbDE7NxJ5xG0Ov1G+SQp+mA/8FpEUKIzKjLiqUvHo0TIJ1u/UVjB3bT6arBBbD0QlK71IXfqGX9tB85ZcCoQRW28ZFnUVNeaO6wFTc7zd3di5tHEm6YQZ3Do0r/AiHe4eIiSgfDjXu+Rjd1E31UlAGxouBHFahQwZBVrvKKTw+UWpnVqC/6CcehwU0NC7EPXh8Lv1AQnjJB1y/Q0JYDDsw3GaKzb8Im9Ej4RjIUo3Rw== X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 31:8Psd5J18UV4WHgRqeCCGJ8iYVjYEtq0Sf5OVMUYPSszVta08V/rOkc/pCisvYN9tlyXXVJgwvxbYL14IoXSHgU4wMNV088NpnSDuo+U7d5zFwJ0k3SmqzHx9UVQGZ3G0HQQkas3gyxWCUqza0b6uUP2dHaCZYnt7sVSOwkVw3Z15CoQ7rWFUZDgR6yVSavvU2equ9Jq9laWW9RTbB8Vc4WFv8n0pCPqf/v8B4dlaAzs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(11668515415152); 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:BWI5FXOKw/qE8tEyeYjRrYhOnkT0EMTQ/YpzmdTFejoDczOYxBWlKU3kKM4//zcBTOEKXsPDw7hyM3clR4QavtL3uDSgid97HmS3W9xowMHHP0AFhyuoO+ZZ2NoJ6qBNBwS3mljveiu2Axkjg67hcq8fUENMi23nhk39x9uMhdGioYVbnyqTKpZcxSe6Zuw4tfzvItIhoiR4T1E25dgjbWXXJhFfYLiPq0DhXaTXMzvIx37Oy46ZCqlk6JtBHLVgUED1Lsw7p6VyXgDGEqiWd5iBk1zCmFmornGOvsaYaGxM0k4TB6TvBwJ8DUuN+Xp3eoxOPsiiMPNlbr5nDM0F81YIbWPYAEoQtxAF6VFIQj2MmsKKn7dI0vZcIi8tq83WKonshT26sViH+fTyZCuE9osfwEyP0iVtwM17eY9lvv+dlkv8b5j3pN5NAwSMcbsmmzWRxhrFkAkEC7fPi/IlJm0EHVuKCC9tas4Je0RIZ9QEl1NNEJuIKUOLkJuTS0AvsPWGacEY2s+MpLctYr92xImI6cYTOkb5VRn+NQJAPv31WRk9yLeygTr7fHjKSH0Am4WXZAgvEDdi26KzjbCXYK48kB1YnxSvgQIk5bZ43DyvpL4Fd18GiKxbgvjcH3Coaxn0kVhkK1kp0fg4C2AFpZE1vLjPbHuws/wX4JgR75hJ8ZHjqOGGbqEudEIfMC+9y6y7VjJOgIO/g5x4s99vTcYs9JD/K086lhSM6vfXrjSSK20RE2KQb0fo+vJ625XXfXBehrbPKjrlh90AhH6CZXXMokKGklAklMiHGSThsEMN2KtnQtXo+2sy+gt2YbgD X-Forefront-PRVS: 0287BBA78D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(6069001)(39450400003)(39400400002)(39410400002)(6506006)(47776003)(4326008)(189998001)(6486002)(42186005)(8676002)(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:hvHRmAUSVjIO0sO5zPyppznDCKySJD5BioGjYAD?= =?us-ascii?Q?A8R9qUj6CxhweMYquc7VPtstTKo5oWoDGf+sPBN3BEugsxZVzMhUrj9ivRdJ?= =?us-ascii?Q?S68zypsPKOVc21n4m72hMiY0kVoN9OenqylGO2pAmxe2s+qSEEg9TQoIbxsT?= =?us-ascii?Q?6XQnw/J8UF7Uc1Nr0gZX1hF8xXH8QbwFbbutFCHLQ0iVYZW3qKzlJGrYB1XR?= =?us-ascii?Q?NGJRrDphKT2kkb9tQXJ8AFxvPKRg5xpfESR8gs4YOJYZhTp3R9KC2adDQdoQ?= =?us-ascii?Q?fxiQpuNGsqeia/5N3mvN7FKUGUwzNz5yEAKfBQJ+qMupWkV9NzBsV0ABiRI1?= =?us-ascii?Q?4IQbgWcxPLaNE89gRgE7rjs/CHMGlbGfwKmUhA3D3+zysO0OBLPqNqibdA+m?= =?us-ascii?Q?wbHvjSIb3xCHBf9TMUgZV7MiXTLIUyx11aEBaCvmJK+bh89MkrakqLWc+tIl?= =?us-ascii?Q?TrQphKScynWUsnIzULWMQeiRiZ/Nu5gcfcCVXEtlr9Ftuypr+DUdpW8osApT?= =?us-ascii?Q?b43xXVY+J5N2mH765BwhSZTTvkGihcaEa506oAkcJbXMZX6bATI/a3mc4J6g?= =?us-ascii?Q?GsR8xuNY2feSn4eEfO3v5SkGkZH+0Vto03qVDFVAxDLTmyCz/9fdVEn1Lnon?= =?us-ascii?Q?1UQYyxHzSH669JJdkBveMEb+iTW4dd3pB3Wr1VPMbbAE5O2pOZKDwoS1KZzc?= =?us-ascii?Q?fyculhlyLS1tmg7rTNUht9sTIXTZuam+RcPj2utSTinT+ksaUbdnB79r5LEO?= =?us-ascii?Q?t4/MAVRiH8Xi1QiJQ0GlLQmzo6hkZcAdasPKSoCHGuuvI31r54d/gKM2mVXJ?= =?us-ascii?Q?aQO/vto7aK66UA78ZN5rVw4Lpeotf/LuSpDfEwN2BybcT/5bSUZCYqHJ8jJF?= =?us-ascii?Q?Cs574YjRgvtDgssQaraX7gPKNeUVpYKtD0g9U3nUDszxyxflOufQN2BmLg2B?= =?us-ascii?Q?TaouP1Yf4bfNcmaQsL5qcMbsbJriEf2umCNFlJTMJBHo0iVlr9cuGh0rAPw9?= =?us-ascii?Q?Vw/rBbd36CFA01qEEpiVWaIUObg9tALJ8rgvUOza1MSG+Sg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 6:2TB+KAjX37izZOPGqegka8kiMiOh6QCx/n0HRy5AXyOuEwW8LVqU9oJOoZ7xnOYeeweSKlmHEFlrikY/vUgLYjEr1WLnqTCzNqZmgpSUbsUEv8fIg26ELNv2g+FplxtxwCSSc+h7PGfbtyGXq4oSHMQTXwb4TsjHwpu/hDEI3mPoh1ouiz+bYceAl4TykN/rhjNq9XZBYmaeIWtHodj3q+R3pUcQjbCpEyX5onhr6SUCYIMgykZwWlqCSJBPehBwOeaiu81L/d0TjUvw3znZdTMQxiWnR4GmS9ZMgmHxNlovkXerW+32+9EicL4ezhn8q56HuxYt8kp4sqrcU0QYSH4XZ+jxoiNStTQHSROMSWiQWXayJd+qm8VkU66m/FN7aO2w8kpfXUsmrnCNRqJjT3EZ7S4/DDWmo+clgvVoAWVt5df7mc+Ns3hsePRoCroxzWVJ5sYk7hrEJiIOD7GTDFFbW/bU4BAzNPawcDFAJsytsIf8hbDQFnpDvs/xxAzhVoIiXMkl2aAvRHZKW9DtPw==; 5:aNficBcCX/6rG3caPU5jKPrGbhJnbk6LDGspBZwgCwA/b8bHGnak8UpYSZV2hbrvZUyzjxVgKgIM7nN6DLHU6PBdqzwxHZiEmO0nxePDwGU7w8IwQovYEPXh0ot0xBQJF+UBs6CLhg+5Oc6pQvok6g==; 24:eOegycvoQdg5DWM/CRB5E03FFziGMFo5QG1LkPLpa7p972MI1TpXbHt975axvZkQ1pMWHNOuyFHx/05eR/zh9q2QmaiiLWDyN+8S8zPBScw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0202MB2548; 7:G9KIOO8wK6yX8yJKz9M5d2bT4q6RxKMZVqhB1f/E7iL6ZdZ9MCyu0XcDC3EPzu9ubBOSbB7xY8qDtqpQwnxlr51hM+y8g3dRSg0wNZc7wGHwXD2O8Wwd0Hp06OUMRIRFHR+hS4H7iuO47L8l0Pr+pq+1KVF2WZsFmvd/X7iYgs90QcSnuAc0/d+RKEYxPJC7gj3zDHp91RZYzV3jFYJ6Gdhsc7LYJwK+JMZxx+qHyg+0siJCYh74YEGGl9uoArEDdoWKWcvXlAk6qJorlEVeUURYxQLRAN219/l3J+EUltsXevOcTkp3MDZETFci/ebXJnr5dBSF7Yl7f0jUEqvjzg== X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2017 08:34:42.1914 (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 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 c265a5fe4848..7fc06739c8ad 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8558,6 +8558,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