i2c: add bcm2835 driver

This implements a very basic I2C host driver for the BCM2835 SoC. Missing
features so far are:

* 10-bit addressing.
* DMA.

Reviewed-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
---
v4:
* Convert FIFO fill/drain loops from for to while.
* Don't WARN_ON transfer timeout.
* Use regular request_irq not devm_request_irq.
* Use i2c_add_adapter not i2c_add_numbered_adapter.
v3:
* Return i2c_add_numbered_adapter() from probe() directly.
v2:
* Implemented clock divider configuration based on desired bus rate.
* Make use of module_platform_driver().
* Removed use of devinit.
mmc: bcm2835: set SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK

SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK does basically the same as
implementing struct sdhci_ops .get_timeout_clock, so simply set that
quirk and remove the custom code to simplify the driver.

Reported-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>