1 # SPDX-License-Identifier: GPL-2.0-only 2 %YAML 1.2 3 --- 4 $id: http://devicetree.org/schemas/i2c/i2c-mux 5 $schema: http://devicetree.org/meta-schemas/co 6 7 title: GPIO-based I2C Bus Mux 8 9 maintainers: 10 - Wolfram Sang <wsa@kernel.org> 11 12 description: | 13 This binding describes an I2C bus multiplexe 14 15 +-----+ +-- 16 | dev | | d 17 +------------+ +-----+ +-- 18 | SoC | | 19 | | /--------+-------- 20 | +------+ | +------+ child bus A, o 21 | | I2C |-|--| Mux | 22 | +------+ | +--+---+ child bus B, o 23 | | | \----------+------ 24 | +------+ | | | 25 | | GPIO |-|-----+ +-----+ + 26 | +------+ | | dev | | 27 +------------+ +-----+ + 28 29 For each I2C child node, an I2C child bus wi 30 order in the device tree. 31 32 Whenever an access is made to a device on a 33 property will be output using the list of GP 34 significant value. 35 36 If an idle state is defined, using the idle- 37 being made to a device on a child bus, the G 38 39 If an idle state is not defined, the most re 40 hardware whenever no access is being made to 41 42 properties: 43 compatible: 44 const: i2c-mux-gpio 45 46 i2c-parent: 47 description: phandle of the I2C bus that t 48 $ref: /schemas/types.yaml#/definitions/pha 49 50 mux-gpios: 51 description: list of GPIOs used to control 52 minItems: 1 53 maxItems: 4 # Should be enough 54 55 idle-state: 56 description: Value to set the muxer to whe 57 last value used. 58 $ref: /schemas/types.yaml#/definitions/uin 59 60 settle-time-us: 61 description: Delay to wait before doing an 62 63 allOf: 64 - $ref: i2c-mux.yaml 65 66 unevaluatedProperties: false 67 68 required: 69 - compatible 70 - i2c-parent 71 - mux-gpios 72 73 examples: 74 - | 75 i2cmux { 76 compatible = "i2c-mux-gpio"; 77 #address-cells = <1>; 78 #size-cells = <0>; 79 mux-gpios = <&gpio1 22 0>, <&gpio1 23 0> 80 i2c-parent = <&i2c1>; 81 82 i2c@1 { 83 reg = <1>; 84 #address-cells = <1>; 85 #size-cells = <0>; 86 87 ssd1307: oled@3c { 88 compatible = "solomon,ssd1307fb-i2c" 89 reg = <0x3c>; 90 pwms = <&pwm 4 3000>; 91 reset-gpios = <&gpio2 7 1>; 92 }; 93 }; 94 95 i2c@3 { 96 reg = <3>; 97 #address-cells = <1>; 98 #size-cells = <0>; 99 100 pca9555: pca9555@20 { 101 compatible = "nxp,pca9555"; 102 gpio-controller; 103 #gpio-cells = <2>; 104 reg = <0x20>; 105 }; 106 }; 107 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.