linux/drivers/i2c
Stefan Roese d04913ec5f i2c: mt7621: Add MediaTek MT7621/7628/7688 I2C driver
This patch adds a driver for the I2C controller found on the MediaTek
MT7621/7628/7688 SoC's. The base version of this driver was done by
Steven Liu (according to the copyright and MODULE_AUTHOR lines). It
can be found in the OpenWRT repositories (v4.14 at the time I looked).

The base driver had many issues, which are disccussed here:

https://en.forum.labs.mediatek.com/t/openwrt-15-05-loads-non-working-i2c-kernel-module-for-mt7688/1286/3

>From this link an enhanced driver version (complete rewrite, mayor
changes: support clock stretching, repeated start, ACK handling and
unlimited message length) from Jan Breuer can be found here:

https://gist.github.com/j123b567/9b555b635c2b4069d716b24198546954

This patch now adds this enhanced I2C driver to mainline.

Changes by Stefan Roese for upstreaming:
- Add devicetree bindings
- checkpatch clean
- Use module_platform_driver()
- Minor cosmetic enhancements
- Removed IO warpped functions
- Use readl_relaxed_poll_timeout() and drop poll_down_timeout()
- Removed superfluous barrier() in mtk_i2c_reset()
- Use i2c_8bit_addr_from_msg()
- Added I2C_FUNC_PROTOCOL_MANGLING
- Removed adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;

Signed-off-by: Stefan Roese <sr@denx.de>
Tested-by: René van Dorst <opensource@vdorst.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2019-06-26 15:19:01 +02:00
..
algos treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
busses i2c: mt7621: Add MediaTek MT7621/7628/7688 I2C driver 2019-06-26 15:19:01 +02:00
muxes treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
i2c-boardinfo.c i2c: i2c-boardinfo: fix memory leaks on devinfo 2017-11-27 19:14:29 +01:00
i2c-core-acpi.c i2c: acpi: export i2c_acpi_find_adapter_by_handle 2019-06-02 21:56:04 +02:00
i2c-core-base.c i2c: add newly exported functions to the header, too 2019-06-26 15:10:35 +02:00
i2c-core-of.c i2c: core: add sysfs header 2019-06-26 15:16:48 +02:00
i2c-core-slave.c i2c: remove i2c_lock_adapter and use i2c_lock_bus directly 2018-07-13 00:09:37 +02:00
i2c-core-smbus.c i2c: core: apply 'is_suspended' check for SMBus, too 2019-05-03 16:44:51 +02:00
i2c-core.h i2c: core: apply 'is_suspended' check for SMBus, too 2019-05-03 16:44:51 +02:00
i2c-dev.c i2c: expand minor range when registering chrdev region 2019-02-15 09:53:34 +01:00
i2c-mux.c i2c: mux: populate the new *_atomic callbacks 2019-04-16 13:08:12 +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: add of_i2c_setup_smbus_alert 2017-10-28 23:42:47 +02:00
i2c-stub.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile i2c: don't use any __deprecated handling anymore 2018-08-24 17:26:43 +02:00