Path: blob/master/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
26307 views
# SPDX-License-Identifier: GPL-2.01%YAML 1.22---3$id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#4$schema: http://devicetree.org/meta-schemas/core.yaml#56title: NXP PCA954x I2C and compatible bus switches78maintainers:9- Laurent Pinchart <laurent.pinchart@ideasonboard.com>1011description:12The NXP PCA954x and compatible devices are I2C bus13multiplexer/switches that share the same functionality14and register layout.15The devices usually have 4 or 8 child buses, which are16attached to the parent bus by using the SMBus "Send Byte"17command.1819properties:20compatible:21oneOf:22- enum:23- maxim,max735624- maxim,max735725- maxim,max735826- maxim,max736727- maxim,max736828- maxim,max736929- nxp,pca954030- nxp,pca954231- nxp,pca954332- nxp,pca954433- nxp,pca954534- nxp,pca954635- nxp,pca954736- nxp,pca954837- nxp,pca984638- nxp,pca984739- nxp,pca984840- nxp,pca984941- items:42- const: nxp,pca964643- const: nxp,pca95464445reg:46maxItems: 14748interrupts:49maxItems: 15051"#interrupt-cells":52const: 25354interrupt-controller: true5556reset-gpios:57maxItems: 15859i2c-mux-idle-disconnect:60type: boolean61description: Forces mux to disconnect all children in idle state. This is62necessary for example, if there are several multiplexers on the bus and63the devices behind them use same I2C addresses.6465idle-state:66description: if present, overrides i2c-mux-idle-disconnect67$ref: /schemas/mux/mux-controller.yaml#/properties/idle-state6869vdd-supply:70description: A voltage regulator supplying power to the chip. On PCA984671the regulator supplies power to VDD2 (core logic) and optionally to VDD1.7273maxim,isolate-stuck-channel:74type: boolean75description: Allows to use non faulty channels while a stuck channel is76isolated from the upstream bus. If not set all channels are isolated from77the upstream bus until the fault is cleared.7879maxim,send-flush-out-sequence:80type: boolean81description: Send a flush-out sequence to stuck auxiliary buses82automatically after a stuck channel is being detected.8384maxim,preconnection-wiggle-test-enable:85type: boolean86description: Send a STOP condition to the auxiliary buses when the switch87register activates a channel to detect a stuck high fault. On fault the88channel is isolated from the upstream bus.8990required:91- compatible92- reg9394allOf:95- $ref: /schemas/i2c/i2c-mux.yaml#96- if:97not:98properties:99compatible:100contains:101enum:102- maxim,max7367103- maxim,max7369104- nxp,pca9542105- nxp,pca9543106- nxp,pca9544107- nxp,pca9545108then:109properties:110interrupts: false111"#interrupt-cells": false112interrupt-controller: false113114- if:115not:116properties:117compatible:118contains:119enum:120- maxim,max7357121then:122properties:123maxim,isolate-stuck-channel: false124maxim,send-flush-out-sequence: false125maxim,preconnection-wiggle-test-enable: false126127unevaluatedProperties: false128129examples:130- |131#include <dt-bindings/interrupt-controller/irq.h>132133i2c {134#address-cells = <1>;135#size-cells = <0>;136137i2c-mux@74 {138compatible = "nxp,pca9545";139#address-cells = <1>;140#size-cells = <0>;141reg = <0x74>;142143vdd-supply = <&p3v3>;144145interrupt-parent = <&ipic>;146interrupts = <17 IRQ_TYPE_LEVEL_LOW>;147interrupt-controller;148#interrupt-cells = <2>;149150i2c@2 {151#address-cells = <1>;152#size-cells = <0>;153reg = <2>;154155eeprom@54 {156compatible = "atmel,24c08";157reg = <0x54>;158};159};160161i2c@4 {162#address-cells = <1>;163#size-cells = <0>;164reg = <4>;165166rtc@51 {167compatible = "nxp,pcf8563";168reg = <0x51>;169};170};171};172};173...174175176