a076a860ac
An ATR is a device that looks similar to an i2c-mux: it has an I2C slave "upstream" port and N master "downstream" ports, and forwards transactions from upstream to the appropriate downstream port. But it is different in that the forwarded transaction has a different slave address. The address used on the upstream bus is called the "alias" and is (potentially) different from the physical slave address of the downstream chip. Add a helper file (just like i2c-mux.c for a mux or switch) to allow implementing ATR features in a device driver. The helper takes care of adapter creation/destruction and translates addresses at each transaction. Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Wolfram Sang <wsa@kernel.org> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
23 lines
716 B
Makefile
23 lines
716 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the i2c core.
|
|
#
|
|
|
|
obj-$(CONFIG_I2C_BOARDINFO) += i2c-boardinfo.o
|
|
obj-$(CONFIG_I2C) += i2c-core.o
|
|
i2c-core-objs := i2c-core-base.o i2c-core-smbus.o
|
|
i2c-core-$(CONFIG_ACPI) += i2c-core-acpi.o
|
|
i2c-core-$(CONFIG_I2C_SLAVE) += i2c-core-slave.o
|
|
i2c-core-$(CONFIG_OF) += i2c-core-of.o
|
|
|
|
obj-$(CONFIG_I2C_SMBUS) += i2c-smbus.o
|
|
obj-$(CONFIG_I2C_CHARDEV) += i2c-dev.o
|
|
obj-$(CONFIG_I2C_MUX) += i2c-mux.o
|
|
obj-$(CONFIG_I2C_ATR) += i2c-atr.o
|
|
obj-y += algos/ busses/ muxes/
|
|
obj-$(CONFIG_I2C_STUB) += i2c-stub.o
|
|
obj-$(CONFIG_I2C_SLAVE_EEPROM) += i2c-slave-eeprom.o
|
|
obj-$(CONFIG_I2C_SLAVE_TESTUNIT) += i2c-slave-testunit.o
|
|
|
|
ccflags-$(CONFIG_I2C_DEBUG_CORE) := -DDEBUG
|