aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/i2c/Kconfig
diff options
context:
space:
mode:
authorLuca Ceresoli <luca@lucaceresoli.net>2023-06-19 14:22:06 +0200
committerMauro Carvalho Chehab <mchehab@kernel.org>2023-07-14 13:11:44 +0200
commita076a860acae77bbdcbd316541e5552e81fb1772 (patch)
treed89211b36c516e4547da8dcbee44bc092b798a20 /drivers/i2c/Kconfig
parentmedia: dt-bindings: i2c: Add I2C Address Translator (ATR) (diff)
downloadwireguard-linux-a076a860acae77bbdcbd316541e5552e81fb1772.tar.xz
wireguard-linux-a076a860acae77bbdcbd316541e5552e81fb1772.zip
media: i2c: add I2C Address Translator (ATR) support
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>
Diffstat (limited to 'drivers/i2c/Kconfig')
-rw-r--r--drivers/i2c/Kconfig9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/i2c/Kconfig b/drivers/i2c/Kconfig
index 438905e2a1d0..c6d1a345ea6d 100644
--- a/drivers/i2c/Kconfig
+++ b/drivers/i2c/Kconfig
@@ -71,6 +71,15 @@ config I2C_MUX
source "drivers/i2c/muxes/Kconfig"
+config I2C_ATR
+ tristate "I2C Address Translator (ATR) support"
+ help
+ Enable support for I2C Address Translator (ATR) chips.
+
+ An ATR allows accessing multiple I2C busses from a single
+ physical bus via address translation instead of bus selection as
+ i2c-muxes do.
+
config I2C_HELPER_AUTO
bool "Autoselect pertinent helper modules"
default y