diff options
author | Boris BREZILLON <boris.brezillon@free-electrons.com> | 2014-06-11 11:17:30 +0200 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2014-06-12 00:24:06 +0200 |
commit | 3e833490fae55633f6adc03a5e6172d47c01f3e4 (patch) | |
tree | 3288418e64b59594729bdd049bff06120dfc6a64 /drivers/i2c/busses/Makefile | |
parent | bb336ba0aaa5bef253d60bdeb08537ddecc7f42f (diff) | |
download | lwn-3e833490fae55633f6adc03a5e6172d47c01f3e4.tar.gz lwn-3e833490fae55633f6adc03a5e6172d47c01f3e4.zip |
i2c: sunxi: add P2WI (Push/Pull 2 Wire Interface) controller support
The P2WI controller looks like an SMBus controller which only supports byte
data transfers. But, it differs from standard SMBus protocol on several
aspects:
- it supports only one slave device, and thus drop the address field
- it adds a parity bit every 8bits of data
- only one read access is required to read a byte (instead of a write
followed by a read access in standard SMBus protocol)
- there's no Ack bit after each byte transfer
This means this bus cannot be used to interface with standard SMBus
devices (the only known device to support this interface is the AXP221
PMIC).
However the P2WI protocol is close enough to SMBus to be integrated in
the I2C subsystem (see this thread [1] for detailed reasons that led to
integrating this driver in the I2C subsystem).
[1] http://www.spinics.net/lists/linux-i2c/msg15066.html
Signed-off-by: Boris BREZILLON <boris.brezillon@free-electrons.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c/busses/Makefile')
-rw-r--r-- | drivers/i2c/busses/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile index 8ac83374cf7e..dd9a7f8e873f 100644 --- a/drivers/i2c/busses/Makefile +++ b/drivers/i2c/busses/Makefile @@ -75,6 +75,7 @@ obj-$(CONFIG_I2C_SIMTEC) += i2c-simtec.o obj-$(CONFIG_I2C_SIRF) += i2c-sirf.o obj-$(CONFIG_I2C_ST) += i2c-st.o obj-$(CONFIG_I2C_STU300) += i2c-stu300.o +obj-$(CONFIG_I2C_SUN6I_P2WI) += i2c-sun6i-p2wi.o obj-$(CONFIG_I2C_TEGRA) += i2c-tegra.o obj-$(CONFIG_I2C_VERSATILE) += i2c-versatile.o obj-$(CONFIG_I2C_WMT) += i2c-wmt.o |