1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 2 %YAML 1.2 2 %YAML 1.2 3 --- 3 --- 4 $id: http://devicetree.org/schemas/i2c/i2c-mux 4 $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml# 5 $schema: http://devicetree.org/meta-schemas/co 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 title: NXP PCA954x I2C and compatible bus swit 7 title: NXP PCA954x I2C and compatible bus switches 8 8 9 maintainers: 9 maintainers: 10 - Laurent Pinchart <laurent.pinchart@ideasonb 10 - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 11 11 12 description: 12 description: 13 The NXP PCA954x and compatible devices are I 13 The NXP PCA954x and compatible devices are I2C bus 14 multiplexer/switches that share the same fun 14 multiplexer/switches that share the same functionality 15 and register layout. 15 and register layout. 16 The devices usually have 4 or 8 child buses, 16 The devices usually have 4 or 8 child buses, which are 17 attached to the parent bus by using the SMBu 17 attached to the parent bus by using the SMBus "Send Byte" 18 command. 18 command. 19 19 20 properties: 20 properties: 21 compatible: 21 compatible: 22 oneOf: 22 oneOf: 23 - enum: 23 - enum: 24 - maxim,max7356 24 - maxim,max7356 25 - maxim,max7357 25 - maxim,max7357 26 - maxim,max7358 26 - maxim,max7358 27 - maxim,max7367 27 - maxim,max7367 28 - maxim,max7368 28 - maxim,max7368 29 - maxim,max7369 29 - maxim,max7369 30 - nxp,pca9540 30 - nxp,pca9540 31 - nxp,pca9542 31 - nxp,pca9542 32 - nxp,pca9543 32 - nxp,pca9543 33 - nxp,pca9544 33 - nxp,pca9544 34 - nxp,pca9545 34 - nxp,pca9545 35 - nxp,pca9546 35 - nxp,pca9546 36 - nxp,pca9547 36 - nxp,pca9547 37 - nxp,pca9548 37 - nxp,pca9548 38 - nxp,pca9846 38 - nxp,pca9846 39 - nxp,pca9847 39 - nxp,pca9847 40 - nxp,pca9848 40 - nxp,pca9848 41 - nxp,pca9849 41 - nxp,pca9849 42 - items: 42 - items: 43 - const: nxp,pca9646 43 - const: nxp,pca9646 44 - const: nxp,pca9546 44 - const: nxp,pca9546 45 45 46 reg: 46 reg: 47 maxItems: 1 47 maxItems: 1 48 48 49 interrupts: 49 interrupts: 50 maxItems: 1 50 maxItems: 1 51 51 52 "#interrupt-cells": 52 "#interrupt-cells": 53 const: 2 53 const: 2 54 54 55 interrupt-controller: true 55 interrupt-controller: true 56 56 57 reset-gpios: 57 reset-gpios: 58 maxItems: 1 58 maxItems: 1 59 59 60 i2c-mux-idle-disconnect: 60 i2c-mux-idle-disconnect: 61 type: boolean 61 type: boolean 62 description: Forces mux to disconnect all 62 description: Forces mux to disconnect all children in idle state. This is 63 necessary for example, if there are seve 63 necessary for example, if there are several multiplexers on the bus and 64 the devices behind them use same I2C add 64 the devices behind them use same I2C addresses. 65 65 66 idle-state: 66 idle-state: 67 description: if present, overrides i2c-mux 67 description: if present, overrides i2c-mux-idle-disconnect 68 $ref: /schemas/mux/mux-controller.yaml#/pr 68 $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state 69 69 70 vdd-supply: 70 vdd-supply: 71 description: A voltage regulator supplying 71 description: A voltage regulator supplying power to the chip. On PCA9846 72 the regulator supplies power to VDD2 (co 72 the regulator supplies power to VDD2 (core logic) and optionally to VDD1. 73 73 74 maxim,isolate-stuck-channel: 74 maxim,isolate-stuck-channel: 75 type: boolean 75 type: boolean 76 description: Allows to use non faulty chan 76 description: Allows to use non faulty channels while a stuck channel is 77 isolated from the upstream bus. If not s 77 isolated from the upstream bus. If not set all channels are isolated from 78 the upstream bus until the fault is clea 78 the upstream bus until the fault is cleared. 79 79 80 maxim,send-flush-out-sequence: 80 maxim,send-flush-out-sequence: 81 type: boolean 81 type: boolean 82 description: Send a flush-out sequence to 82 description: Send a flush-out sequence to stuck auxiliary buses 83 automatically after a stuck channel is b 83 automatically after a stuck channel is being detected. 84 84 85 maxim,preconnection-wiggle-test-enable: 85 maxim,preconnection-wiggle-test-enable: 86 type: boolean 86 type: boolean 87 description: Send a STOP condition to the 87 description: Send a STOP condition to the auxiliary buses when the switch 88 register activates a channel to detect a 88 register activates a channel to detect a stuck high fault. On fault the 89 channel is isolated from the upstream bu 89 channel is isolated from the upstream bus. 90 90 91 required: 91 required: 92 - compatible 92 - compatible 93 - reg 93 - reg 94 94 95 allOf: 95 allOf: 96 - $ref: /schemas/i2c/i2c-mux.yaml# 96 - $ref: /schemas/i2c/i2c-mux.yaml# 97 - if: 97 - if: 98 not: 98 not: 99 properties: 99 properties: 100 compatible: 100 compatible: 101 contains: 101 contains: 102 enum: 102 enum: 103 - maxim,max7367 103 - maxim,max7367 104 - maxim,max7369 104 - maxim,max7369 105 - nxp,pca9542 105 - nxp,pca9542 106 - nxp,pca9543 106 - nxp,pca9543 107 - nxp,pca9544 107 - nxp,pca9544 108 - nxp,pca9545 108 - nxp,pca9545 109 then: 109 then: 110 properties: 110 properties: 111 interrupts: false 111 interrupts: false 112 "#interrupt-cells": false 112 "#interrupt-cells": false 113 interrupt-controller: false 113 interrupt-controller: false 114 114 115 - if: 115 - if: 116 not: 116 not: 117 properties: 117 properties: 118 compatible: 118 compatible: 119 contains: 119 contains: 120 enum: 120 enum: 121 - maxim,max7357 121 - maxim,max7357 122 then: 122 then: 123 properties: 123 properties: 124 maxim,isolate-stuck-channel: false 124 maxim,isolate-stuck-channel: false 125 maxim,send-flush-out-sequence: false 125 maxim,send-flush-out-sequence: false 126 maxim,preconnection-wiggle-test-enable 126 maxim,preconnection-wiggle-test-enable: false 127 127 128 unevaluatedProperties: false 128 unevaluatedProperties: false 129 129 130 examples: 130 examples: 131 - | 131 - | 132 #include <dt-bindings/interrupt-controller 132 #include <dt-bindings/interrupt-controller/irq.h> 133 133 134 i2c { 134 i2c { 135 #address-cells = <1>; 135 #address-cells = <1>; 136 #size-cells = <0>; 136 #size-cells = <0>; 137 137 138 i2c-mux@74 { 138 i2c-mux@74 { 139 compatible = "nxp,pca9545"; 139 compatible = "nxp,pca9545"; 140 #address-cells = <1>; 140 #address-cells = <1>; 141 #size-cells = <0>; 141 #size-cells = <0>; 142 reg = <0x74>; 142 reg = <0x74>; 143 143 144 vdd-supply = <&p3v3>; 144 vdd-supply = <&p3v3>; 145 145 146 interrupt-parent = <&ipic>; 146 interrupt-parent = <&ipic>; 147 interrupts = <17 IRQ_TYPE_LEVEL_LO 147 interrupts = <17 IRQ_TYPE_LEVEL_LOW>; 148 interrupt-controller; 148 interrupt-controller; 149 #interrupt-cells = <2>; 149 #interrupt-cells = <2>; 150 150 151 i2c@2 { 151 i2c@2 { 152 #address-cells = <1>; 152 #address-cells = <1>; 153 #size-cells = <0>; 153 #size-cells = <0>; 154 reg = <2>; 154 reg = <2>; 155 155 156 eeprom@54 { 156 eeprom@54 { 157 compatible = "atmel,24c08" 157 compatible = "atmel,24c08"; 158 reg = <0x54>; 158 reg = <0x54>; 159 }; 159 }; 160 }; 160 }; 161 161 162 i2c@4 { 162 i2c@4 { 163 #address-cells = <1>; 163 #address-cells = <1>; 164 #size-cells = <0>; 164 #size-cells = <0>; 165 reg = <4>; 165 reg = <4>; 166 166 167 rtc@51 { 167 rtc@51 { 168 compatible = "nxp,pcf8563" 168 compatible = "nxp,pcf8563"; 169 reg = <0x51>; 169 reg = <0x51>; 170 }; 170 }; 171 }; 171 }; 172 }; 172 }; 173 }; 173 }; 174 ... 174 ...
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.