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 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... 145