1*86335b51SRob Herring# SPDX-License-Identifier: GPL-2.0
2*86335b51SRob Herring%YAML 1.2
3*86335b51SRob Herring---
4*86335b51SRob Herring$id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
5*86335b51SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
6*86335b51SRob Herring
7*86335b51SRob Herringtitle: NXP PCA954x I2C bus switch
8*86335b51SRob Herring
9*86335b51SRob Herringmaintainers:
10*86335b51SRob Herring  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11*86335b51SRob Herring
12*86335b51SRob Herringdescription:
13*86335b51SRob Herring  The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
14*86335b51SRob Herring
15*86335b51SRob HerringallOf:
16*86335b51SRob Herring  - $ref: /schemas/i2c/i2c-mux.yaml#
17*86335b51SRob Herring
18*86335b51SRob Herringproperties:
19*86335b51SRob Herring  compatible:
20*86335b51SRob Herring    oneOf:
21*86335b51SRob Herring      - enum:
22*86335b51SRob Herring          - nxp,pca9540
23*86335b51SRob Herring          - nxp,pca9542
24*86335b51SRob Herring          - nxp,pca9543
25*86335b51SRob Herring          - nxp,pca9544
26*86335b51SRob Herring          - nxp,pca9545
27*86335b51SRob Herring          - nxp,pca9546
28*86335b51SRob Herring          - nxp,pca9547
29*86335b51SRob Herring          - nxp,pca9548
30*86335b51SRob Herring          - nxp,pca9846
31*86335b51SRob Herring          - nxp,pca9847
32*86335b51SRob Herring          - nxp,pca9848
33*86335b51SRob Herring          - nxp,pca9849
34*86335b51SRob Herring      - items:
35*86335b51SRob Herring          - const: nxp,pca9646
36*86335b51SRob Herring          - const: nxp,pca9546
37*86335b51SRob Herring
38*86335b51SRob Herring  reg:
39*86335b51SRob Herring    maxItems: 1
40*86335b51SRob Herring
41*86335b51SRob Herring  interrupts:
42*86335b51SRob Herring    maxItems: 1
43*86335b51SRob Herring
44*86335b51SRob Herring  "#interrupt-cells":
45*86335b51SRob Herring    const: 2
46*86335b51SRob Herring
47*86335b51SRob Herring  interrupt-controller: true
48*86335b51SRob Herring
49*86335b51SRob Herring  reset-gpios:
50*86335b51SRob Herring    maxItems: 1
51*86335b51SRob Herring
52*86335b51SRob Herring  i2c-mux-idle-disconnect:
53*86335b51SRob Herring    type: boolean
54*86335b51SRob Herring    description: Forces mux to disconnect all children in idle state. This is
55*86335b51SRob Herring      necessary for example, if there are several multiplexers on the bus and
56*86335b51SRob Herring      the devices behind them use same I2C addresses.
57*86335b51SRob Herring
58*86335b51SRob Herring  idle-state:
59*86335b51SRob Herring    description: if present, overrides i2c-mux-idle-disconnect
60*86335b51SRob Herring    $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
61*86335b51SRob Herring
62*86335b51SRob Herringrequired:
63*86335b51SRob Herring  - compatible
64*86335b51SRob Herring  - reg
65*86335b51SRob Herring
66*86335b51SRob HerringunevaluatedProperties: false
67*86335b51SRob Herring
68*86335b51SRob Herringexamples:
69*86335b51SRob Herring  - |
70*86335b51SRob Herring    #include <dt-bindings/interrupt-controller/irq.h>
71*86335b51SRob Herring
72*86335b51SRob Herring    i2c {
73*86335b51SRob Herring        #address-cells = <1>;
74*86335b51SRob Herring        #size-cells = <0>;
75*86335b51SRob Herring
76*86335b51SRob Herring        i2c-mux@74 {
77*86335b51SRob Herring            compatible = "nxp,pca9548";
78*86335b51SRob Herring            #address-cells = <1>;
79*86335b51SRob Herring            #size-cells = <0>;
80*86335b51SRob Herring            reg = <0x74>;
81*86335b51SRob Herring
82*86335b51SRob Herring            interrupt-parent = <&ipic>;
83*86335b51SRob Herring            interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
84*86335b51SRob Herring            interrupt-controller;
85*86335b51SRob Herring            #interrupt-cells = <2>;
86*86335b51SRob Herring
87*86335b51SRob Herring            i2c@2 {
88*86335b51SRob Herring                #address-cells = <1>;
89*86335b51SRob Herring                #size-cells = <0>;
90*86335b51SRob Herring                reg = <2>;
91*86335b51SRob Herring
92*86335b51SRob Herring                eeprom@54 {
93*86335b51SRob Herring                    compatible = "atmel,24c08";
94*86335b51SRob Herring                    reg = <0x54>;
95*86335b51SRob Herring                };
96*86335b51SRob Herring            };
97*86335b51SRob Herring
98*86335b51SRob Herring            i2c@4 {
99*86335b51SRob Herring                #address-cells = <1>;
100*86335b51SRob Herring                #size-cells = <0>;
101*86335b51SRob Herring                reg = <4>;
102*86335b51SRob Herring
103*86335b51SRob Herring                rtc@51 {
104*86335b51SRob Herring                    compatible = "nxp,pcf8563";
105*86335b51SRob Herring                    reg = <0x51>;
106*86335b51SRob Herring                };
107*86335b51SRob Herring            };
108*86335b51SRob Herring        };
109*86335b51SRob Herring    };
110*86335b51SRob Herring...
111