175 lines · yaml
1# SPDX-License-Identifier: GPL-2.02%YAML 1.23---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 switches8 9maintainers:10 - Laurent Pinchart <laurent.pinchart@ideasonboard.com>11 12description:13 The NXP PCA954x and compatible devices are I2C bus14 multiplexer/switches that share the same functionality15 and register layout.16 The devices usually have 4 or 8 child buses, which are17 attached to the parent bus by using the SMBus "Send Byte"18 command.19 20properties:21 compatible:22 oneOf:23 - enum:24 - maxim,max735625 - maxim,max735726 - maxim,max735827 - maxim,max736728 - maxim,max736829 - maxim,max736930 - nxp,pca954031 - nxp,pca954232 - nxp,pca954333 - nxp,pca954434 - nxp,pca954535 - nxp,pca954636 - nxp,pca954737 - nxp,pca954838 - nxp,pca984639 - nxp,pca984740 - nxp,pca984841 - nxp,pca984942 - items:43 - const: nxp,pca964644 - const: nxp,pca954645 46 reg:47 maxItems: 148 49 interrupts:50 maxItems: 151 52 "#interrupt-cells":53 const: 254 55 interrupt-controller: true56 57 reset-gpios:58 maxItems: 159 60 i2c-mux-idle-disconnect:61 type: boolean62 description: Forces mux to disconnect all children in idle state. This is63 necessary for example, if there are several multiplexers on the bus and64 the devices behind them use same I2C addresses.65 66 idle-state:67 description: if present, overrides i2c-mux-idle-disconnect68 $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state69 70 vdd-supply:71 description: A voltage regulator supplying power to the chip. On PCA984672 the regulator supplies power to VDD2 (core logic) and optionally to VDD1.73 74 maxim,isolate-stuck-channel:75 type: boolean76 description: Allows to use non faulty channels while a stuck channel is77 isolated from the upstream bus. If not set all channels are isolated from78 the upstream bus until the fault is cleared.79 80 maxim,send-flush-out-sequence:81 type: boolean82 description: Send a flush-out sequence to stuck auxiliary buses83 automatically after a stuck channel is being detected.84 85 maxim,preconnection-wiggle-test-enable:86 type: boolean87 description: Send a STOP condition to the auxiliary buses when the switch88 register activates a channel to detect a stuck high fault. On fault the89 channel is isolated from the upstream bus.90 91required:92 - compatible93 - reg94 95allOf:96 - $ref: /schemas/i2c/i2c-mux.yaml#97 - if:98 not:99 properties:100 compatible:101 contains:102 enum:103 - maxim,max7367104 - maxim,max7369105 - nxp,pca9542106 - nxp,pca9543107 - nxp,pca9544108 - nxp,pca9545109 then:110 properties:111 interrupts: false112 "#interrupt-cells": false113 interrupt-controller: false114 115 - if:116 not:117 properties:118 compatible:119 contains:120 enum:121 - maxim,max7357122 then:123 properties:124 maxim,isolate-stuck-channel: false125 maxim,send-flush-out-sequence: false126 maxim,preconnection-wiggle-test-enable: false127 128unevaluatedProperties: false129 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...175