Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69e620f8 authored by Wolfram Sang's avatar Wolfram Sang
Browse files

Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-4.12

Pull in changes from the i2c-mux subsubsystem:

"Here are a new LTC4306/5 driver, a fix needed by the RT kernel and some
error message cleanup."
parents cda816d1 dbed8a80
Loading
Loading
Loading
Loading
+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>;
			};
		};
	};
+8 −0
Original line number Diff line number Diff line
@@ -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>
+6 −3
Original line number Diff line number Diff line
@@ -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;
	}
+11 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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