brintos

brintos / linux-shallow public Read only

0
0
Text · 4.3 KiB · 9aa0585 Raw
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