linux/drivers/i2c
Jean-Michel Hautbois 0f614d834b i2c: Add generic support passing secondary devices addresses
Some I2C devices have multiple addresses assigned, for example each address
corresponding to a different internal register map page of the device.
So far drivers which need support for this have handled this with a driver
specific and non-generic implementation, e.g. passing the additional address
via platform data.

This patch provides a new helper function called i2c_new_secondary_device()
which is intended to provide a generic way to get the secondary address
as well as instantiate a struct i2c_client for the secondary address.

The function expects a pointer to the primary i2c_client, a name
for the secondary address and an optional default address. The name is used
as a handle to specify which secondary address to get.

The default address is used as a fallback in case no secondary address
was explicitly specified. In case no secondary address and no default
address were specified the function returns NULL.

For now the function only supports look-up of the secondary address
from devicetree, but it can be extended in the future
to for example support board files and/or ACPI.

Signed-off-by: Jean-Michel Hautbois <jean-michel.hautbois@veo-labs.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2016-06-13 22:32:09 +02:00
..
algos i2c: algo-bit: declare i2c_bit_quirk_no_clk_stretch as static 2016-05-11 17:16:30 +02:00
busses i2c: octeon: Avoid printk after too long SMBUS message 2016-06-09 22:07:57 +02:00
muxes i2c: mux: reg: Provide of_match_table 2016-06-09 22:38:16 +02:00
i2c-boardinfo.c i2c: i2c-boardinfo: sort includes 2016-02-20 23:33:38 +01:00
i2c-core.c i2c: Add generic support passing secondary devices addresses 2016-06-13 22:32:09 +02:00
i2c-core.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-dev.c i2c: dev: use after free in detach 2016-05-28 17:37:42 +02:00
i2c-mux.c i2c: mux: relax locking of the top i2c adapter during mux-locked muxing 2016-05-04 22:39:17 +02:00
i2c-slave-eeprom.c i2c: Drop owner assignment from i2c_driver 2015-08-10 08:37:35 +02:00
i2c-smbus.c i2c: i2c-smbus: sort includes 2016-02-20 23:33:39 +01:00
i2c-stub.c i2c: i2c-stub: sort includes 2016-02-20 23:33:39 +01:00
Kconfig kconfig: use bool instead of boolean for type definition attributes 2015-01-07 13:08:04 +01:00
Makefile i2c: slave-eeprom: add eeprom simulator driver 2014-12-11 22:25:54 +01:00