xref: /linux/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml (revision c771600c6af14749609b49565ffb4cac2959710d)
14a875cf1SFarouk Bouabid# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
24a875cf1SFarouk Bouabid%YAML 1.2
34a875cf1SFarouk Bouabid---
44a875cf1SFarouk Bouabid$id: http://devicetree.org/schemas/i2c/tsd,mule-i2c-mux.yaml#
54a875cf1SFarouk Bouabid$schema: http://devicetree.org/meta-schemas/core.yaml#
64a875cf1SFarouk Bouabid
74a875cf1SFarouk Bouabidtitle: Theobroma Systems Mule I2C multiplexer
84a875cf1SFarouk Bouabid
94a875cf1SFarouk Bouabidmaintainers:
104a875cf1SFarouk Bouabid  - Farouk Bouabid <farouk.bouabid@cherry.de>
114a875cf1SFarouk Bouabid  - Quentin Schulz <quentin.schulz@cherry.de>
124a875cf1SFarouk Bouabid
134a875cf1SFarouk Bouabiddescription: |
144a875cf1SFarouk Bouabid  Theobroma Systems Mule is an MCU that emulates a set of I2C devices, among
154a875cf1SFarouk Bouabid  which devices that are reachable through an I2C-mux. The devices on the mux
164a875cf1SFarouk Bouabid  can be selected by writing the appropriate device number to an I2C config
174a875cf1SFarouk Bouabid  register.
184a875cf1SFarouk Bouabid
194a875cf1SFarouk Bouabid
204a875cf1SFarouk Bouabid      +--------------------------------------------------+
214a875cf1SFarouk Bouabid      | Mule                                             |
224a875cf1SFarouk Bouabid  0x18|    +---------------+                             |
234a875cf1SFarouk Bouabid  -------->|Config register|----+                        |
244a875cf1SFarouk Bouabid      |    +---------------+    |                        |
254a875cf1SFarouk Bouabid      |                         V_                       |
264a875cf1SFarouk Bouabid      |                        |  \          +--------+  |
274a875cf1SFarouk Bouabid      |                        |   \-------->| dev #0 |  |
284a875cf1SFarouk Bouabid      |                        |   |         +--------+  |
294a875cf1SFarouk Bouabid  0x6f|                        | M |-------->| dev #1 |  |
304a875cf1SFarouk Bouabid  ---------------------------->| U |         +--------+  |
314a875cf1SFarouk Bouabid      |                        | X |-------->| dev #2 |  |
324a875cf1SFarouk Bouabid      |                        |   |         +--------+  |
334a875cf1SFarouk Bouabid      |                        |   /-------->| dev #3 |  |
344a875cf1SFarouk Bouabid      |                        |__/          +--------+  |
354a875cf1SFarouk Bouabid      +--------------------------------------------------+
364a875cf1SFarouk Bouabid
374a875cf1SFarouk Bouabid
384a875cf1SFarouk BouabidallOf:
394a875cf1SFarouk Bouabid  - $ref: /schemas/i2c/i2c-mux.yaml#
404a875cf1SFarouk Bouabid
414a875cf1SFarouk Bouabidproperties:
424a875cf1SFarouk Bouabid  compatible:
434a875cf1SFarouk Bouabid    const: tsd,mule-i2c-mux
444a875cf1SFarouk Bouabid
454a875cf1SFarouk Bouabidrequired:
464a875cf1SFarouk Bouabid  - compatible
474a875cf1SFarouk Bouabid
484a875cf1SFarouk BouabidunevaluatedProperties: false
494a875cf1SFarouk Bouabid
504a875cf1SFarouk Bouabidexamples:
514a875cf1SFarouk Bouabid  - |
524a875cf1SFarouk Bouabid    i2c-mux {
534a875cf1SFarouk Bouabid        compatible = "tsd,mule-i2c-mux";
544a875cf1SFarouk Bouabid        #address-cells = <1>;
554a875cf1SFarouk Bouabid        #size-cells = <0>;
564a875cf1SFarouk Bouabid
574a875cf1SFarouk Bouabid        i2c@0 {
584a875cf1SFarouk Bouabid            reg = <0x0>;
594a875cf1SFarouk Bouabid            #address-cells = <1>;
604a875cf1SFarouk Bouabid            #size-cells = <0>;
614a875cf1SFarouk Bouabid
624a875cf1SFarouk Bouabid            rtc@6f {
634a875cf1SFarouk Bouabid                compatible = "isil,isl1208";
644a875cf1SFarouk Bouabid                reg = <0x6f>;
654a875cf1SFarouk Bouabid            };
664a875cf1SFarouk Bouabid        };
674a875cf1SFarouk Bouabid    };
684a875cf1SFarouk Bouabid...
694a875cf1SFarouk Bouabid
70