[PULL REQUEST] i2c for 4.17

From: Wolfram Sang
Date: Sat Apr 07 2018 - 11:10:29 EST


Linus,

here is the I2C pull request with the following main points:

* I2C core now reports proper OF style module alias. I'd like to repeat
the note from the commit msg here (Thanks, Javier!):
===
NOTE: This patch may break out-of-tree drivers that were relying on this
behavior, and only had an I2C device ID table even when the device
was registered via OF. There are no remaining drivers in mainline
that do this, but out-of-tree drivers have to be fixed and define
a proper OF device ID table to have module auto-loading working.
===
* new driver for the SynQuacer I2C controller
* major refactoring of the QUP driver
* the piix4 driver now uses request_muxed_region which should fix a long
standing resource conflict with the sp5100_tco watchdog
* a bunch of small core & driver improvements

The patch touching sh-architecture doesn't have an ack, we tried for months to
reach the maintainers. As I didn't want to block this improvement any further
and the change is small, I applied it. I am still open for any discussion about
it.

Please pull.

Thanks,

Wolfram


The following changes since commit c698ca5278934c0ae32297a8725ced2e27585d7f:

Linux 4.16-rc6 (2018-03-18 17:48:42 -0700)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git i2c/for-4.17

for you to fetch changes up to 0d676a6c439028b046610f7593f4ddb62680f1fb:

i2c: add support for Socionext SynQuacer I2C controller (2018-04-04 20:33:03 +0200)

----------------------------------------------------------------
Abhishek Sahu (13):
i2c: qup: fix copyrights and update to SPDX identifier
i2c: qup: fixed releasing dma without flush operation completion
i2c: qup: minor code reorganization for use_dma
i2c: qup: remove redundant variables for BAM SG count
i2c: qup: schedule EOT and FLUSH tags at the end of transfer
i2c: qup: fix the transfer length for BAM RX EOT FLUSH tags
i2c: qup: proper error handling for i2c error in BAM mode
i2c: qup: use the complete transfer length to choose DMA mode
i2c: qup: change completion timeout according to transfer length
i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
i2c: qup: send NACK for last read sub transfers
i2c: qup: reorganization of driver code to remove polling for qup v1
i2c: qup: reorganization of driver code to remove polling for qup v2

Ahbong Chang (1):
i2c: fix parameter of trace_i2c_result

Alexander Monakov (1):
i2c: designware: suppress unneeded SDA hold time warnings

Andrzej Hajda (1):
i2c: exynos5: rework HSI2C_MASTER_ST_LOSE state handling

Ard Biesheuvel (2):
dt-bindings: i2c: add binding for Socionext SynQuacer I2C
i2c: add support for Socionext SynQuacer I2C controller

Chris Packham (4):
sh: sh7785lcr: add GPIO lookup table for i2c controller reset
i2c: pca-platform: unconditionally use devm_gpiod_get_optional
i2c: pca-platform: use device_property_read_u32
i2c: pca-platform: drop gpio from platform data

Colin Ian King (1):
i2c-stm32f4: remove redundant initialization of pointer reg

Davidlohr Bueso (1):
i2c: Update i2c_trace_msg static key to modern api

Dmitry Bazhenov (1):
i2c: xlp9xx: return ENXIO on slave address NACK

Geert Uytterhoeven (2):
dt-bindings: i2c: sh_mobile: Document R-Car M3-N support
dt-bindings: at24: add Renesas R1EX24128

George Cherian (3):
i2c: xlp9xx: Handle transactions with I2C_M_RECV_LEN properly
i2c: xlp9xx: Check for Bus state before every transfer
i2c: xlp9xx: Handle NACK on DATA properly

Gregory CLEMENT (2):
i2c: mv64xxx: Apply errata delay only in standard mode
MAINTAINERS: i2c-mv64xxx: update email address for Gregory CLEMENT

Guenter Roeck (2):
i2c: piix4: Use usleep_range()
i2c: piix4: Use request_muxed_region

Hiromitsu Yamasaki (1):
i2c: rcar: fix mask value of prohibited bit

Javier Martinez Canillas (1):
i2c: core: report OF style module alias for devices registered via OF

Jean Delvare (1):
i2c: scmi: Use standard device message logging functions

Lucas Stach (2):
i2c: imx: use clk notifier for rate changes
i2c: imx: avoid taking clk_prepare mutex in PM callbacks

Moritz Fischer (1):
i2c: xiic: Make suspend function names consistent

Peter Rosin (3):
i2c: add i2c_get_device_id() to get the standard i2c device id
i2c: mux: pca954x: verify the device id of the pca984x chips
dt-bindings: at24: add compatible for nxp,se97b

Ulrich Hecht (2):
dt-bindings: i2c: document R8A77995 bindings
dt-bindings: at24: add bindings for Rohm BR24T01

Wolfram Sang (10):
i2c: of: change log level of failed device creation
i2c: of: make ref counting more visible
i2c: of: rename variable to meet expectations
i2c: of: remove duplicated check for valid address
i2c: of: simplify reading the "reg" property
i2c: reformat comments around i2c_smbus_xfer_emulated()
Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-4.17
Merge tag 'at24-4.17-updates-for-wolfram' of git://git.kernel.org/.../brgl/linux into i2c/for-4.17
dt-bindings: i2c: document R8A77965 bindings
i2c: make i2c_check_addr_validity() static


with much appreciated quality assurance from
----------------------------------------------------------------
Adrian Fiergolski (2):
(Test) i2c: mux: pca954x: verify the device id of the pca984x chips
(Test) i2c: add i2c_get_device_id() to get the standard i2c device id

Andy Gross (8):
(Rev.) i2c: qup: send NACK for last read sub transfers
(Rev.) i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
(Rev.) i2c: qup: change completion timeout according to transfer length
(Rev.) i2c: qup: use the complete transfer length to choose DMA mode
(Rev.) i2c: qup: fix the transfer length for BAM RX EOT FLUSH tags
(Rev.) i2c: qup: remove redundant variables for BAM SG count
(Rev.) i2c: qup: minor code reorganization for use_dma
(Rev.) i2c: qup: fixed releasing dma without flush operation completion

Andy Shevchenko (1):
(Rev.) i2c: add support for Socionext SynQuacer I2C controller

Austin Christ (6):
(Rev.) i2c: qup: send NACK for last read sub transfers
(Rev.) i2c: qup: use the complete transfer length to choose DMA mode
(Rev.) i2c: qup: proper error handling for i2c error in BAM mode
(Rev.) i2c: qup: remove redundant variables for BAM SG count
(Rev.) i2c: qup: minor code reorganization for use_dma
(Rev.) i2c: qup: fixed releasing dma without flush operation completion

David Howells (2):
(Rev.) i2c: Update i2c_trace_msg static key to modern api
(Rev.) i2c: fix parameter of trace_i2c_result

Dmitry Mastykin (1):
(Test) i2c: core: report OF style module alias for devices registered via OF

Geert Uytterhoeven (3):
(Rev.) dt-bindings: i2c: document R8A77965 bindings
(Rev.) dt-bindings: at24: add bindings for Rohm BR24T01
(Rev.) dt-bindings: i2c: document R8A77995 bindings

Jan Glauber (2):
(Rev.) i2c: xlp9xx: Handle NACK on DATA properly
(Rev.) i2c: xlp9xx: Check for Bus state before every transfer

Jean Delvare (2):
(Rev.) i2c: piix4: Use request_muxed_region
(Rev.) i2c: piix4: Use usleep_range()

Peter Rosin (1):
(Rev.) i2c: reformat comments around i2c_smbus_xfer_emulated()

Philipp Zabel (2):
(Rev.) i2c: imx: avoid taking clk_prepare mutex in PM callbacks
(Rev.) i2c: imx: use clk notifier for rate changes

Rafael J. Wysocki (1):
(Rev.) i2c: scmi: Use standard device message logging functions

Rob Herring (4):
(Rev.) dt-bindings: i2c: add binding for Socionext SynQuacer I2C
(Rev.) dt-bindings: at24: add bindings for Rohm BR24T01
(Rev.) dt-bindings: at24: add compatible for nxp,se97b
(Rev.) dt-bindings: i2c: document R8A77995 bindings

Simon Horman (2):
(Rev.) dt-bindings: i2c: sh_mobile: Document R-Car M3-N support
(Rev.) dt-bindings: i2c: document R8A77995 bindings

Sricharan R (4):
(Rev.) i2c: qup: reorganization of driver code to remove polling for qup v2
(Rev.) i2c: qup: reorganization of driver code to remove polling for qup v1
(Rev.) i2c: qup: proper error handling for i2c error in BAM mode
(Rev.) i2c: qup: schedule EOT and FLUSH tags at the end of transfer

Todd Poynor (1):
(Rev.) i2c: fix parameter of trace_i2c_result

Wolfram Sang (2):
(Rev.) dt-bindings: at24: add bindings for Rohm BR24T01
(Rev.) i2c: add i2c_get_device_id() to get the standard i2c device id

dann frazier (2):
(Test) i2c: xlp9xx: Handle transactions with I2C_M_RECV_LEN properly
(Test) i2c: xlp9xx: return ENXIO on slave address NACK

Documentation/devicetree/bindings/eeprom/at24.txt | 4 +
Documentation/devicetree/bindings/i2c/i2c-rcar.txt | 2 +
.../devicetree/bindings/i2c/i2c-sh_mobile.txt | 1 +
.../devicetree/bindings/i2c/i2c-synquacer.txt | 29 +
MAINTAINERS | 9 +-
arch/blackfin/mach-bf561/boards/acvilon.c | 1 -
arch/sh/boards/board-sh7785lcr.c | 11 +-
drivers/i2c/busses/Kconfig | 10 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-designware-master.c | 2 +-
drivers/i2c/busses/i2c-exynos5.c | 63 +-
drivers/i2c/busses/i2c-imx.c | 36 +-
drivers/i2c/busses/i2c-mv64xxx.c | 8 +-
drivers/i2c/busses/i2c-pca-platform.c | 34 +-
drivers/i2c/busses/i2c-piix4.c | 61 +-
drivers/i2c/busses/i2c-qup.c | 1481 ++++++++++++--------
drivers/i2c/busses/i2c-rcar.c | 4 +-
drivers/i2c/busses/i2c-scmi.c | 35 +-
drivers/i2c/busses/i2c-stm32f4.c | 2 +-
drivers/i2c/busses/i2c-synquacer.c | 667 +++++++++
drivers/i2c/busses/i2c-xiic.c | 8 +-
drivers/i2c/busses/i2c-xlp9xx.c | 78 +-
drivers/i2c/i2c-core-base.c | 58 +-
drivers/i2c/i2c-core-of.c | 30 +-
drivers/i2c/i2c-core-smbus.c | 16 +-
drivers/i2c/i2c-core.h | 1 -
drivers/i2c/muxes/i2c-mux-pca954x.c | 55 +-
include/linux/i2c-pca-platform.h | 3 -
include/linux/i2c.h | 30 +
29 files changed, 1969 insertions(+), 771 deletions(-)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-synquacer.txt
create mode 100644 drivers/i2c/busses/i2c-synquacer.c

Attachment: signature.asc
Description: PGP signature