1 Register-based I2C Bus Mux
3 This binding describes an I2C bus multiplexer that uses a single register
4 to route the I2C signals.
7 - compatible: i2c-mux-reg
8 - i2c-parent: The phandle of the I2C bus that this multiplexer's master-side
10 * Standard I2C mux properties. See i2c-mux.txt in this directory.
11 * I2C child bus nodes. See i2c-mux.txt in this directory.
14 - reg: this pair of <offset size> specifies the register to control the mux.
15 The <offset size> depends on its parent node. It can be any memory-mapped
16 address. The size must be either 1, 2, or 4 bytes. If reg is omitted, the
17 resource of this device will be used.
18 - little-endian: The existence indicates the register is in little endian.
19 - big-endian: The existence indicates the register is in big endian.
20 If both little-endian and big-endian are omitted, the endianness of the
22 - write-only: The existence indicates the register is write-only.
23 - idle-state: value to set the muxer to when idle. When no value is
24 given, it defaults to the last value used.
26 Whenever an access is made to a device on a child bus, the value set
27 in the relevant node's reg property will be output to the register.
29 If an idle state is defined, using the idle-state (optional) property,
30 whenever an access is not being made to a device on a child bus, the
31 register will be set according to the idle value.
33 If an idle state is not defined, the most recently used value will be
34 left programmed into the register.
36 Example of a mux on PCIe card, the host is a powerpc SoC (big endian):
39 /* the <offset size> depends on the address translation
40 * of the parent device. If omitted, device resource
41 * will be used instead. The size is to determine
42 * whether iowrite32, iowrite16, or iowrite8 will be used.
45 little-endian; /* little endian register on PCIe */
46 compatible = "i2c-mux-reg";
55 si5338: clock-generator@70 {
56 compatible = "silabs,si5338";
63 /* data is written using iowrite32 */
68 si5338: clock-generator@70 {
69 compatible = "silabs,si5338";