[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240506-dev-mule-i2c-mux-v2-2-a91c954f65d7@cherry.de>
Date: Mon, 06 May 2024 13:37:53 +0200
From: Farouk Bouabid <farouk.bouabid@...rry.de>
To: Wolfram Sang <wsa+renesas@...g-engineering.com>,
Peter Rosin <peda@...ntia.se>, Andi Shyti <andi.shyti@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Conor Dooley <conor+dt@...nel.org>,
Farouk Bouabid <farouk.bouabid@...rry.de>,
Quentin Schulz <quentin.schulz@...rry.de>, Heiko Stuebner <heiko@...ech.de>,
Quentin Schulz <quentin.schulz@...obroma-systems.com>
Cc: linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-rockchip@...ts.infradead.org
Subject: [PATCH v2 2/7] dt-bindings: i2c: mux: mule: add dt-bindings for
mule i2c multiplexer
Mule is an MCU that emulates a set of i2c devices which are reachable
through an i2c-mux.
The emulated devices share a single i2c address with the mux core itself
where the requested register is what determines which logic is executed
(mux logic or device logic).
Add support for the Mule I2C multiplexer bindings.
Signed-off-by: Farouk Bouabid <farouk.bouabid@...rry.de>
---
.../devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml | 80 ++++++++++++++++++++++
1 file changed, 80 insertions(+)
diff --git a/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml b/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
new file mode 100644
index 000000000000..50915183bd43
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
@@ -0,0 +1,80 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/tsd,mule-i2c-mux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Mule I2C multiplexer
+
+maintainers:
+ - Farouk Bouabid <farouk.bouabid@...rry.de>
+ - Quentin Schulz <quentin.schulz@...rry.de>
+
+description: |
+ Mule is an MCU that emulates a set of i2c devices which are reachable
+ through an i2c-mux.
+
+ The emulated devices share a single i2c address with the mux core itself
+ where the requested register is what determines which logic is executed
+ (mux logic or device logic)
+
+ +--------------------------------------------------+
+ | Mule |
+ | +---------------+ |
+ ------+->|Config register|----+ |
+ | | +---------------+ | |
+ | | V_ |
+ | | | \ +--------+ |
+ | | | \-------->| dev #0 | |
+ | | | | +--------+ |
+ | | | M |-------->| dev #1 | |
+ | +--------------------->| U | +--------+ |
+ | | X |-------->| dev #2 | |
+ | | | +--------+ |
+ | | /-------->| dev #3 | |
+ | |__/ +--------+ |
+ +--------------------------------------------------+
+
+
+allOf:
+ - $ref: /schemas/i2c/i2c-mux.yaml#
+
+properties:
+ compatible:
+ const: tsd,mule-i2c-mux
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c-mux@18 {
+ compatible = "tsd,mule-i2c-mux";
+ reg = <0x18>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c@0 {
+ reg = <0x0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ fan: fan@18 {
+ compatible = "ti,amc6821";
+ reg = <0x18>;
+ #cooling-cells = <2>;
+ };
+ };
+ };
+ };
+...
--
2.34.1
Powered by blists - more mailing lists