File Index
Files and directories
Sign in
FILE

i2c-mux-pca954x.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml YAML
  1# 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
 74  maxim,isolate-stuck-channel:
 75    type: boolean
 76    description: Allows to use non faulty channels while a stuck channel is
 77      isolated from the upstream bus. If not set all channels are isolated from
 78      the upstream bus until the fault is cleared.
 79
 80  maxim,send-flush-out-sequence:
 81    type: boolean
 82    description: Send a flush-out sequence to stuck auxiliary buses
 83      automatically after a stuck channel is being detected.
 84
 85  maxim,preconnection-wiggle-test-enable:
 86    type: boolean
 87    description: Send a STOP condition to the auxiliary buses when the switch
 88      register activates a channel to detect a stuck high fault. On fault the
 89      channel is isolated from the upstream bus.
 90
 91required:
 92  - compatible
 93  - reg
 94
 95allOf:
 96  - $ref: /schemas/i2c/i2c-mux.yaml#
 97  - if:
 98      not:
 99        properties:
100          compatible:
101            contains:
102              enum:
103                - maxim,max7367
104                - maxim,max7369
105                - nxp,pca9542
106                - nxp,pca9543
107                - nxp,pca9544
108                - nxp,pca9545
109    then:
110      properties:
111        interrupts: false
112        "#interrupt-cells": false
113        interrupt-controller: false
114
115  - if:
116      not:
117        properties:
118          compatible:
119            contains:
120              enum:
121                - maxim,max7357
122    then:
123      properties:
124        maxim,isolate-stuck-channel: false
125        maxim,send-flush-out-sequence: false
126        maxim,preconnection-wiggle-test-enable: false
127
128unevaluatedProperties: false
129
130examples:
131  - |
132    #include <dt-bindings/interrupt-controller/irq.h>
133
134    i2c {
135        #address-cells = <1>;
136        #size-cells = <0>;
137
138        i2c-mux@74 {
139            compatible = "nxp,pca9545";
140            #address-cells = <1>;
141            #size-cells = <0>;
142            reg = <0x74>;
143
144            vdd-supply = <&p3v3>;
145
146            interrupt-parent = <&ipic>;
147            interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
148            interrupt-controller;
149            #interrupt-cells = <2>;
150
151            i2c@2 {
152                #address-cells = <1>;
153                #size-cells = <0>;
154                reg = <2>;
155
156                eeprom@54 {
157                    compatible = "atmel,24c08";
158                    reg = <0x54>;
159                };
160            };
161
162            i2c@4 {
163                #address-cells = <1>;
164                #size-cells = <0>;
165                reg = <4>;
166
167                rtc@51 {
168                    compatible = "nxp,pcf8563";
169                    reg = <0x51>;
170                };
171            };
172        };
173    };
174...
~/ Read-only file preview.