i2c: exynos5: add High Speed I2C controller driver

Adds support for High Speed I2C driver found in Exynos5 and
later SoCs from Samsung.

Driver only supports Device Tree method.

Changes since v1:
1. Added FIFO functionality
2. Added High speed mode functionality
3. Remove SMBUS_QUICK
4. Remove the debugfs functionality
5. Use devm_* functions where ever possible
6. Driver is free from GPIO configs (only supports pinctrl method)
7. Use OF data string "clock-frequency" to get the bus operating frequencies
8. Split the clock divisor calculation function
9. Add resets for the failed transacton cases
10. few other bug fixes and cosmetic changes

Based on v9 of the driver posted upstream:
      https://patchwork.kernel.org/patch/2581911/

BUG=chrome-os-partner:19007
TEST=i2c should be working once the config is enabled

Change-Id: I2522716ad6e52e386dab506e9d1d2119bd5715b9
Signed-off-by: Taekgyun Ko <taeggyun.ko@samsung.com>
Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Reviewed-by: Simon Glass <sjg@google.com>
Tested-by: Andrew Bresticker <abrestic@google.com>
Signed-off-by: Yuvaraj Kumar C D <yuvaraj.cd@samsung.com>
[abrestic: squashed interruptible fix, build fix, and documentation fixes]
Signed-off-by: Andrew Bresticker <abrestic@google.com>
Reviewed-on: https://gerrit.chromium.org/gerrit/56216
Reviewed-by: Andrew Bresticker <abrestic@chromium.org>
Tested-by: Andrew Bresticker <abrestic@chromium.org>
Commit-Queue: Andrew Bresticker <abrestic@chromium.org>
i2c: exynos5: use 100khz by default in fast-mode

The Exynos 5 hsi2c driver currently uses a 1Mhz bus frequency by default
in both fast-mode and high-speed mode.  Since many peripherals, and
perhaps the hsi2c controller itself, do not support fast-mode at 1Mhz,
use 100khz by default instead.

This also fixes the documentation which incorrectly states that the default
bus frequency is 100khz in both modes.

BUG=chrome-os-partner:18993
TEST=Build and boot on peach-pit; i2c still works.

Change-Id: I6a2caf803faa55b8ab574d149ba130093576f4b2
Signed-off-by: Andrew Bresticker <abrestic@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/57080
Reviewed-by: Doug Anderson <dianders@chromium.org>