xref: /freebsd/sys/contrib/device-tree/Bindings/i2c/tsd,mule-i2c-mux.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
1*b2d2a78aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b2d2a78aSEmmanuel Vadot%YAML 1.2
3*b2d2a78aSEmmanuel Vadot---
4*b2d2a78aSEmmanuel Vadot$id: http://devicetree.org/schemas/i2c/tsd,mule-i2c-mux.yaml#
5*b2d2a78aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b2d2a78aSEmmanuel Vadot
7*b2d2a78aSEmmanuel Vadottitle: Theobroma Systems Mule I2C multiplexer
8*b2d2a78aSEmmanuel Vadot
9*b2d2a78aSEmmanuel Vadotmaintainers:
10*b2d2a78aSEmmanuel Vadot  - Farouk Bouabid <farouk.bouabid@cherry.de>
11*b2d2a78aSEmmanuel Vadot  - Quentin Schulz <quentin.schulz@cherry.de>
12*b2d2a78aSEmmanuel Vadot
13*b2d2a78aSEmmanuel Vadotdescription: |
14*b2d2a78aSEmmanuel Vadot  Theobroma Systems Mule is an MCU that emulates a set of I2C devices, among
15*b2d2a78aSEmmanuel Vadot  which devices that are reachable through an I2C-mux. The devices on the mux
16*b2d2a78aSEmmanuel Vadot  can be selected by writing the appropriate device number to an I2C config
17*b2d2a78aSEmmanuel Vadot  register.
18*b2d2a78aSEmmanuel Vadot
19*b2d2a78aSEmmanuel Vadot
20*b2d2a78aSEmmanuel Vadot      +--------------------------------------------------+
21*b2d2a78aSEmmanuel Vadot      | Mule                                             |
22*b2d2a78aSEmmanuel Vadot  0x18|    +---------------+                             |
23*b2d2a78aSEmmanuel Vadot  -------->|Config register|----+                        |
24*b2d2a78aSEmmanuel Vadot      |    +---------------+    |                        |
25*b2d2a78aSEmmanuel Vadot      |                         V_                       |
26*b2d2a78aSEmmanuel Vadot      |                        |  \          +--------+  |
27*b2d2a78aSEmmanuel Vadot      |                        |   \-------->| dev #0 |  |
28*b2d2a78aSEmmanuel Vadot      |                        |   |         +--------+  |
29*b2d2a78aSEmmanuel Vadot  0x6f|                        | M |-------->| dev #1 |  |
30*b2d2a78aSEmmanuel Vadot  ---------------------------->| U |         +--------+  |
31*b2d2a78aSEmmanuel Vadot      |                        | X |-------->| dev #2 |  |
32*b2d2a78aSEmmanuel Vadot      |                        |   |         +--------+  |
33*b2d2a78aSEmmanuel Vadot      |                        |   /-------->| dev #3 |  |
34*b2d2a78aSEmmanuel Vadot      |                        |__/          +--------+  |
35*b2d2a78aSEmmanuel Vadot      +--------------------------------------------------+
36*b2d2a78aSEmmanuel Vadot
37*b2d2a78aSEmmanuel Vadot
38*b2d2a78aSEmmanuel VadotallOf:
39*b2d2a78aSEmmanuel Vadot  - $ref: /schemas/i2c/i2c-mux.yaml#
40*b2d2a78aSEmmanuel Vadot
41*b2d2a78aSEmmanuel Vadotproperties:
42*b2d2a78aSEmmanuel Vadot  compatible:
43*b2d2a78aSEmmanuel Vadot    const: tsd,mule-i2c-mux
44*b2d2a78aSEmmanuel Vadot
45*b2d2a78aSEmmanuel Vadotrequired:
46*b2d2a78aSEmmanuel Vadot  - compatible
47*b2d2a78aSEmmanuel Vadot
48*b2d2a78aSEmmanuel VadotunevaluatedProperties: false
49*b2d2a78aSEmmanuel Vadot
50*b2d2a78aSEmmanuel Vadotexamples:
51*b2d2a78aSEmmanuel Vadot  - |
52*b2d2a78aSEmmanuel Vadot    i2c-mux {
53*b2d2a78aSEmmanuel Vadot        compatible = "tsd,mule-i2c-mux";
54*b2d2a78aSEmmanuel Vadot        #address-cells = <1>;
55*b2d2a78aSEmmanuel Vadot        #size-cells = <0>;
56*b2d2a78aSEmmanuel Vadot
57*b2d2a78aSEmmanuel Vadot        i2c@0 {
58*b2d2a78aSEmmanuel Vadot            reg = <0x0>;
59*b2d2a78aSEmmanuel Vadot            #address-cells = <1>;
60*b2d2a78aSEmmanuel Vadot            #size-cells = <0>;
61*b2d2a78aSEmmanuel Vadot
62*b2d2a78aSEmmanuel Vadot            rtc@6f {
63*b2d2a78aSEmmanuel Vadot                compatible = "isil,isl1208";
64*b2d2a78aSEmmanuel Vadot                reg = <0x6f>;
65*b2d2a78aSEmmanuel Vadot            };
66*b2d2a78aSEmmanuel Vadot        };
67*b2d2a78aSEmmanuel Vadot    };
68*b2d2a78aSEmmanuel Vadot...
69*b2d2a78aSEmmanuel Vadot
70