Loading Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt 0 → 100644 +61 −0 Original line number Diff line number Diff line * Linear Technology / Analog Devices I2C bus switch Required Properties: - compatible: Must contain one of the following. "lltc,ltc4305", "lltc,ltc4306" - reg: The I2C address of the device. The following required properties are defined externally: - Standard I2C mux properties. See i2c-mux.txt in this directory. - I2C child bus nodes. See i2c-mux.txt in this directory. Optional Properties: - enable-gpios: Reference to the GPIO connected to the enable input. - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all children in idle state. This is necessary for example, if there are several multiplexers on the bus and the devices behind them use same I2C addresses. - gpio-controller: Marks the device node as a GPIO Controller. - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. - ltc,downstream-accelerators-enable: Enables the rise time accelerators on the downstream port. - ltc,upstream-accelerators-enable: Enables the rise time accelerators on the upstream port. Example: ltc4306: i2c-mux@4a { compatible = "lltc,ltc4306"; #address-cells = <1>; #size-cells = <0>; reg = <0x4a>; gpio-controller; #gpio-cells = <2>; i2c@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; eeprom@50 { compatible = "at,24c02"; reg = <0x50>; }; }; i2c@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; eeprom@50 { compatible = "at,24c02"; reg = <0x50>; }; }; }; MAINTAINERS +8 −0 Original line number Diff line number Diff line Loading @@ -7698,6 +7698,14 @@ S: Maintained F: Documentation/hwmon/ltc4261 F: drivers/hwmon/ltc4261.c LTC4306 I2C MULTIPLEXER DRIVER M: Michael Hennerich <michael.hennerich@analog.com> W: http://ez.analog.com/community/linux-device-drivers L: linux-i2c@vger.kernel.org S: Supported F: drivers/i2c/muxes/i2c-mux-ltc4306.c F: Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt LTP (Linux Test Project) M: Mike Frysinger <vapier@gentoo.org> M: Cyril Hrubis <chrubis@suse.cz> Loading drivers/i2c/i2c-mux.c +6 −3 Original line number Diff line number Diff line Loading @@ -395,13 +395,16 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc, if (force_nr) { priv->adap.nr = force_nr; ret = i2c_add_numbered_adapter(&priv->adap); dev_err(&parent->dev, "failed to add mux-adapter %u as bus %u (error=%d)\n", chan_id, force_nr, ret); } else { ret = i2c_add_adapter(&priv->adap); dev_err(&parent->dev, "failed to add mux-adapter %u (error=%d)\n", chan_id, ret); } if (ret < 0) { dev_err(&parent->dev, "failed to add mux-adapter (error=%d)\n", ret); kfree(priv); return ret; } Loading drivers/i2c/muxes/Kconfig +11 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,17 @@ config I2C_MUX_GPIO This driver can also be built as a module. If so, the module will be called i2c-mux-gpio. config I2C_MUX_LTC4306 tristate "LTC LTC4306/5 I2C multiplexer" select GPIOLIB select REGMAP_I2C help If you say yes here you get support for the Analog Devices LTC4306 or LTC4305 I2C mux/switch devices. This driver can also be built as a module. If so, the module will be called i2c-mux-ltc4306. config I2C_MUX_PCA9541 tristate "NXP PCA9541 I2C Master Selector" help Loading drivers/i2c/muxes/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ obj-$(CONFIG_I2C_ARB_GPIO_CHALLENGE) += i2c-arb-gpio-challenge.o obj-$(CONFIG_I2C_DEMUX_PINCTRL) += i2c-demux-pinctrl.o obj-$(CONFIG_I2C_MUX_GPIO) += i2c-mux-gpio.o obj-$(CONFIG_I2C_MUX_LTC4306) += i2c-mux-ltc4306.o obj-$(CONFIG_I2C_MUX_MLXCPLD) += i2c-mux-mlxcpld.o obj-$(CONFIG_I2C_MUX_PCA9541) += i2c-mux-pca9541.o obj-$(CONFIG_I2C_MUX_PCA954x) += i2c-mux-pca954x.o Loading Loading
Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt 0 → 100644 +61 −0 Original line number Diff line number Diff line * Linear Technology / Analog Devices I2C bus switch Required Properties: - compatible: Must contain one of the following. "lltc,ltc4305", "lltc,ltc4306" - reg: The I2C address of the device. The following required properties are defined externally: - Standard I2C mux properties. See i2c-mux.txt in this directory. - I2C child bus nodes. See i2c-mux.txt in this directory. Optional Properties: - enable-gpios: Reference to the GPIO connected to the enable input. - i2c-mux-idle-disconnect: Boolean; if defined, forces mux to disconnect all children in idle state. This is necessary for example, if there are several multiplexers on the bus and the devices behind them use same I2C addresses. - gpio-controller: Marks the device node as a GPIO Controller. - #gpio-cells: Should be two. The first cell is the pin number and the second cell is used to specify flags. See ../gpio/gpio.txt for more information. - ltc,downstream-accelerators-enable: Enables the rise time accelerators on the downstream port. - ltc,upstream-accelerators-enable: Enables the rise time accelerators on the upstream port. Example: ltc4306: i2c-mux@4a { compatible = "lltc,ltc4306"; #address-cells = <1>; #size-cells = <0>; reg = <0x4a>; gpio-controller; #gpio-cells = <2>; i2c@0 { #address-cells = <1>; #size-cells = <0>; reg = <0>; eeprom@50 { compatible = "at,24c02"; reg = <0x50>; }; }; i2c@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; eeprom@50 { compatible = "at,24c02"; reg = <0x50>; }; }; };
MAINTAINERS +8 −0 Original line number Diff line number Diff line Loading @@ -7698,6 +7698,14 @@ S: Maintained F: Documentation/hwmon/ltc4261 F: drivers/hwmon/ltc4261.c LTC4306 I2C MULTIPLEXER DRIVER M: Michael Hennerich <michael.hennerich@analog.com> W: http://ez.analog.com/community/linux-device-drivers L: linux-i2c@vger.kernel.org S: Supported F: drivers/i2c/muxes/i2c-mux-ltc4306.c F: Documentation/devicetree/bindings/i2c/i2c-mux-ltc4306.txt LTP (Linux Test Project) M: Mike Frysinger <vapier@gentoo.org> M: Cyril Hrubis <chrubis@suse.cz> Loading
drivers/i2c/i2c-mux.c +6 −3 Original line number Diff line number Diff line Loading @@ -395,13 +395,16 @@ int i2c_mux_add_adapter(struct i2c_mux_core *muxc, if (force_nr) { priv->adap.nr = force_nr; ret = i2c_add_numbered_adapter(&priv->adap); dev_err(&parent->dev, "failed to add mux-adapter %u as bus %u (error=%d)\n", chan_id, force_nr, ret); } else { ret = i2c_add_adapter(&priv->adap); dev_err(&parent->dev, "failed to add mux-adapter %u (error=%d)\n", chan_id, ret); } if (ret < 0) { dev_err(&parent->dev, "failed to add mux-adapter (error=%d)\n", ret); kfree(priv); return ret; } Loading
drivers/i2c/muxes/Kconfig +11 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,17 @@ config I2C_MUX_GPIO This driver can also be built as a module. If so, the module will be called i2c-mux-gpio. config I2C_MUX_LTC4306 tristate "LTC LTC4306/5 I2C multiplexer" select GPIOLIB select REGMAP_I2C help If you say yes here you get support for the Analog Devices LTC4306 or LTC4305 I2C mux/switch devices. This driver can also be built as a module. If so, the module will be called i2c-mux-ltc4306. config I2C_MUX_PCA9541 tristate "NXP PCA9541 I2C Master Selector" help Loading
drivers/i2c/muxes/Makefile +1 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ obj-$(CONFIG_I2C_ARB_GPIO_CHALLENGE) += i2c-arb-gpio-challenge.o obj-$(CONFIG_I2C_DEMUX_PINCTRL) += i2c-demux-pinctrl.o obj-$(CONFIG_I2C_MUX_GPIO) += i2c-mux-gpio.o obj-$(CONFIG_I2C_MUX_LTC4306) += i2c-mux-ltc4306.o obj-$(CONFIG_I2C_MUX_MLXCPLD) += i2c-mux-mlxcpld.o obj-$(CONFIG_I2C_MUX_PCA9541) += i2c-mux-pca9541.o obj-$(CONFIG_I2C_MUX_PCA954x) += i2c-mux-pca954x.o Loading