blob: 2d7bb998b0e9d2651daf0efae9dd312f2ddf5ae9 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP PCA954x I2C and compatible bus switches
8
9maintainers:
10 - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
11
12description:
13 The NXP PCA954x and compatible devices are I2C bus
14 multiplexer/switches that share the same functionality
15 and register layout.
16 The devices usually have 4 or 8 child buses, which are
17 attached to the parent bus by using the SMBus "Send Byte"
18 command.
19
20properties:
21 compatible:
22 oneOf:
23 - enum:
24 - maxim,max7356
25 - maxim,max7357
26 - maxim,max7358
27 - maxim,max7367
28 - maxim,max7368
29 - maxim,max7369
30 - nxp,pca9540
31 - nxp,pca9542
32 - nxp,pca9543
33 - nxp,pca9544
34 - nxp,pca9545
35 - nxp,pca9546
36 - nxp,pca9547
37 - nxp,pca9548
38 - nxp,pca9846
39 - nxp,pca9847
40 - nxp,pca9848
41 - nxp,pca9849
42 - items:
43 - const: nxp,pca9646
44 - const: nxp,pca9546
45
46 reg:
47 maxItems: 1
48
49 interrupts:
50 maxItems: 1
51
52 "#interrupt-cells":
53 const: 2
54
55 interrupt-controller: true
56
57 reset-gpios:
58 maxItems: 1
59
60 i2c-mux-idle-disconnect:
61 type: boolean
62 description: Forces mux to disconnect all children in idle state. This is
63 necessary for example, if there are several multiplexers on the bus and
64 the devices behind them use same I2C addresses.
65
66 idle-state:
67 description: if present, overrides i2c-mux-idle-disconnect
68 $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
69
70 vdd-supply:
71 description: A voltage regulator supplying power to the chip. On PCA9846
72 the regulator supplies power to VDD2 (core logic) and optionally to VDD1.
73
74required:
75 - compatible
76 - reg
77
78allOf:
79 - $ref: /schemas/i2c/i2c-mux.yaml#
80 - if:
81 not:
82 properties:
83 compatible:
84 contains:
85 enum:
86 - maxim,max7367
87 - maxim,max7369
88 - nxp,pca9542
89 - nxp,pca9543
90 - nxp,pca9544
91 - nxp,pca9545
92 then:
93 properties:
94 interrupts: false
95 "#interrupt-cells": false
96 interrupt-controller: false
97
98unevaluatedProperties: false
99
100examples:
101 - |
102 #include <dt-bindings/interrupt-controller/irq.h>
103
104 i2c {
105 #address-cells = <1>;
106 #size-cells = <0>;
107
108 i2c-mux@74 {
109 compatible = "nxp,pca9545";
110 #address-cells = <1>;
111 #size-cells = <0>;
112 reg = <0x74>;
113
114 vdd-supply = <&p3v3>;
115
116 interrupt-parent = <&ipic>;
117 interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
118 interrupt-controller;
119 #interrupt-cells = <2>;
120
121 i2c@2 {
122 #address-cells = <1>;
123 #size-cells = <0>;
124 reg = <2>;
125
126 eeprom@54 {
127 compatible = "atmel,24c08";
128 reg = <0x54>;
129 };
130 };
131
132 i2c@4 {
133 #address-cells = <1>;
134 #size-cells = <0>;
135 reg = <4>;
136
137 rtc@51 {
138 compatible = "nxp,pcf8563";
139 reg = <0x51>;
140 };
141 };
142 };
143 };
144...