1*5956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2*5956d97fSEmmanuel Vadot%YAML 1.2 3*5956d97fSEmmanuel Vadot--- 4*5956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/i2c/i2c-mux.yaml# 5*5956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5956d97fSEmmanuel Vadot 7*5956d97fSEmmanuel Vadottitle: Common i2c bus multiplexer/switch properties. 8*5956d97fSEmmanuel Vadot 9*5956d97fSEmmanuel Vadotmaintainers: 10*5956d97fSEmmanuel Vadot - Peter Rosin <peda@axentia.se> 11*5956d97fSEmmanuel Vadot 12*5956d97fSEmmanuel Vadotdescription: |+ 13*5956d97fSEmmanuel Vadot An i2c bus multiplexer/switch will have several child busses that are numbered 14*5956d97fSEmmanuel Vadot uniquely in a device dependent manner. The nodes for an i2c bus 15*5956d97fSEmmanuel Vadot multiplexer/switch will have one child node for each child bus. 16*5956d97fSEmmanuel Vadot 17*5956d97fSEmmanuel Vadot For i2c multiplexers/switches that have child nodes that are a mixture of both 18*5956d97fSEmmanuel Vadot i2c child busses and other child nodes, the 'i2c-mux' subnode can be used for 19*5956d97fSEmmanuel Vadot populating the i2c child busses. If an 'i2c-mux' subnode is present, only 20*5956d97fSEmmanuel Vadot subnodes of this will be considered as i2c child busses. 21*5956d97fSEmmanuel Vadot 22*5956d97fSEmmanuel Vadotproperties: 23*5956d97fSEmmanuel Vadot $nodename: 24*5956d97fSEmmanuel Vadot pattern: '^(i2c-?)?mux' 25*5956d97fSEmmanuel Vadot 26*5956d97fSEmmanuel Vadot '#address-cells': 27*5956d97fSEmmanuel Vadot const: 1 28*5956d97fSEmmanuel Vadot 29*5956d97fSEmmanuel Vadot '#size-cells': 30*5956d97fSEmmanuel Vadot const: 0 31*5956d97fSEmmanuel Vadot 32*5956d97fSEmmanuel VadotpatternProperties: 33*5956d97fSEmmanuel Vadot '^i2c@[0-9a-f]+$': 34*5956d97fSEmmanuel Vadot $ref: /schemas/i2c/i2c-controller.yaml 35*5956d97fSEmmanuel Vadot unevaluatedProperties: false 36*5956d97fSEmmanuel Vadot 37*5956d97fSEmmanuel Vadot properties: 38*5956d97fSEmmanuel Vadot reg: 39*5956d97fSEmmanuel Vadot description: The mux selector sub-bus number for the child I2C bus. 40*5956d97fSEmmanuel Vadot maxItems: 1 41*5956d97fSEmmanuel Vadot 42*5956d97fSEmmanuel VadotadditionalProperties: true 43*5956d97fSEmmanuel Vadot 44*5956d97fSEmmanuel Vadotexamples: 45*5956d97fSEmmanuel Vadot - | 46*5956d97fSEmmanuel Vadot /* 47*5956d97fSEmmanuel Vadot * An NXP pca9548 8 channel I2C multiplexer at address 0x70 48*5956d97fSEmmanuel Vadot * with two NXP pca8574 GPIO expanders attached, one each to 49*5956d97fSEmmanuel Vadot * ports 3 and 4. 50*5956d97fSEmmanuel Vadot */ 51*5956d97fSEmmanuel Vadot i2c { 52*5956d97fSEmmanuel Vadot #address-cells = <1>; 53*5956d97fSEmmanuel Vadot #size-cells = <0>; 54*5956d97fSEmmanuel Vadot 55*5956d97fSEmmanuel Vadot i2c-mux@70 { 56*5956d97fSEmmanuel Vadot compatible = "nxp,pca9548"; 57*5956d97fSEmmanuel Vadot reg = <0x70>; 58*5956d97fSEmmanuel Vadot #address-cells = <1>; 59*5956d97fSEmmanuel Vadot #size-cells = <0>; 60*5956d97fSEmmanuel Vadot 61*5956d97fSEmmanuel Vadot i2c@3 { 62*5956d97fSEmmanuel Vadot #address-cells = <1>; 63*5956d97fSEmmanuel Vadot #size-cells = <0>; 64*5956d97fSEmmanuel Vadot reg = <3>; 65*5956d97fSEmmanuel Vadot 66*5956d97fSEmmanuel Vadot gpio@20 { 67*5956d97fSEmmanuel Vadot compatible = "nxp,pca9555"; 68*5956d97fSEmmanuel Vadot gpio-controller; 69*5956d97fSEmmanuel Vadot #gpio-cells = <2>; 70*5956d97fSEmmanuel Vadot reg = <0x20>; 71*5956d97fSEmmanuel Vadot }; 72*5956d97fSEmmanuel Vadot }; 73*5956d97fSEmmanuel Vadot i2c@4 { 74*5956d97fSEmmanuel Vadot #address-cells = <1>; 75*5956d97fSEmmanuel Vadot #size-cells = <0>; 76*5956d97fSEmmanuel Vadot reg = <4>; 77*5956d97fSEmmanuel Vadot 78*5956d97fSEmmanuel Vadot gpio@20 { 79*5956d97fSEmmanuel Vadot compatible = "nxp,pca9555"; 80*5956d97fSEmmanuel Vadot gpio-controller; 81*5956d97fSEmmanuel Vadot #gpio-cells = <2>; 82*5956d97fSEmmanuel Vadot reg = <0x20>; 83*5956d97fSEmmanuel Vadot }; 84*5956d97fSEmmanuel Vadot }; 85*5956d97fSEmmanuel Vadot }; 86*5956d97fSEmmanuel Vadot }; 87*5956d97fSEmmanuel Vadot... 88