162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/i2c/i2c-mux.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Common i2c bus multiplexer/switch properties. 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Peter Rosin <peda@axentia.se> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: |+ 1362306a36Sopenharmony_ci An i2c bus multiplexer/switch will have several child busses that are numbered 1462306a36Sopenharmony_ci uniquely in a device dependent manner. The nodes for an i2c bus 1562306a36Sopenharmony_ci multiplexer/switch will have one child node for each child bus. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci For i2c multiplexers/switches that have child nodes that are a mixture of both 1862306a36Sopenharmony_ci i2c child busses and other child nodes, the 'i2c-mux' subnode can be used for 1962306a36Sopenharmony_ci populating the i2c child busses. If an 'i2c-mux' subnode is present, only 2062306a36Sopenharmony_ci subnodes of this will be considered as i2c child busses. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciproperties: 2362306a36Sopenharmony_ci $nodename: 2462306a36Sopenharmony_ci pattern: '^(i2c-?)?mux' 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci '#address-cells': 2762306a36Sopenharmony_ci const: 1 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci '#size-cells': 3062306a36Sopenharmony_ci const: 0 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_cipatternProperties: 3362306a36Sopenharmony_ci '^i2c@[0-9a-f]+$': 3462306a36Sopenharmony_ci $ref: /schemas/i2c/i2c-controller.yaml 3562306a36Sopenharmony_ci unevaluatedProperties: false 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci properties: 3862306a36Sopenharmony_ci reg: 3962306a36Sopenharmony_ci description: The mux selector sub-bus number for the child I2C bus. 4062306a36Sopenharmony_ci maxItems: 1 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ciadditionalProperties: true 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciexamples: 4562306a36Sopenharmony_ci - | 4662306a36Sopenharmony_ci /* 4762306a36Sopenharmony_ci * An NXP pca9548 8 channel I2C multiplexer at address 0x70 4862306a36Sopenharmony_ci * with two NXP pca8574 GPIO expanders attached, one each to 4962306a36Sopenharmony_ci * ports 3 and 4. 5062306a36Sopenharmony_ci */ 5162306a36Sopenharmony_ci i2c { 5262306a36Sopenharmony_ci #address-cells = <1>; 5362306a36Sopenharmony_ci #size-cells = <0>; 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci i2c-mux@70 { 5662306a36Sopenharmony_ci compatible = "nxp,pca9548"; 5762306a36Sopenharmony_ci reg = <0x70>; 5862306a36Sopenharmony_ci #address-cells = <1>; 5962306a36Sopenharmony_ci #size-cells = <0>; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci i2c@3 { 6262306a36Sopenharmony_ci #address-cells = <1>; 6362306a36Sopenharmony_ci #size-cells = <0>; 6462306a36Sopenharmony_ci reg = <3>; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci gpio@20 { 6762306a36Sopenharmony_ci compatible = "nxp,pca9555"; 6862306a36Sopenharmony_ci gpio-controller; 6962306a36Sopenharmony_ci #gpio-cells = <2>; 7062306a36Sopenharmony_ci reg = <0x20>; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci }; 7362306a36Sopenharmony_ci i2c@4 { 7462306a36Sopenharmony_ci #address-cells = <1>; 7562306a36Sopenharmony_ci #size-cells = <0>; 7662306a36Sopenharmony_ci reg = <4>; 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci gpio@20 { 7962306a36Sopenharmony_ci compatible = "nxp,pca9555"; 8062306a36Sopenharmony_ci gpio-controller; 8162306a36Sopenharmony_ci #gpio-cells = <2>; 8262306a36Sopenharmony_ci reg = <0x20>; 8362306a36Sopenharmony_ci }; 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci }; 8762306a36Sopenharmony_ci... 88