i2c: add sc18is600 driver

This adds an I²C master driver for SPI -> I²C bus bridge chips.
It currently supports NXP's SC18IS600 and SC18IS601, as well as
Silicon Labs' CP2120. The driver was only tested on SC18IS600.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-By: Sebastian Reichel <sre@kernel.org>

Changes since PATCHv1:
 * Reported by Julia Lawall / buildbot
  - fix double initializations of buffer_size and clock_base
 * Reported by Andy Shevchenko
  - Use clamp_val() instead of open coding
  - Simplify some statements
  - Use of_device_get_match_data() instead of of_match_device()
  - Check for clk_prepare_enable() failure
  - Introduce SC18IS600_CLK_DIVIDER define instead of magic number
  - Rename struct sc18is600dev *dev to *s600dev.
 * Reported by Wolfram Sang
  - Move config to "External I2C/SMBus adapter drivers"
  - Drop debug messages
  - Use -ENXIO on address NAK
 * Add support for I2C_M_IGNORE_NAK
5 files changed