Skip to content

Commit

Permalink
i2c: iproc: Add Broadcom iProc I2C Driver
Browse files Browse the repository at this point in the history
Add initial support to the Broadcom iProc I2C controller found in the
iProc family of SoCs.

The iProc I2C controller has separate internal TX and RX FIFOs, each has
a size of 64 bytes. The iProc I2C controller supports two bus speeds
including standard mode (100kHz) and fast mode (400kHz)

Signed-off-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
Reviewed-by: Kevin Cernekee <cernekee@chromium.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
  • Loading branch information
Ray Jui authored and Wolfram Sang committed Feb 17, 2015
1 parent a93ac57 commit e6e5dd3
Show file tree
Hide file tree
Showing 4 changed files with 509 additions and 0 deletions.
37 changes: 37 additions & 0 deletions Documentation/devicetree/bindings/i2c/brcm,iproc-i2c.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
Broadcom iProc I2C controller

Required properties:

- compatible:
Must be "brcm,iproc-i2c"

- reg:
Define the base and range of the I/O address space that contain the iProc
I2C controller registers

- interrupts:
Should contain the I2C interrupt

- clock-frequency:
This is the I2C bus clock. Need to be either 100000 or 400000

- #address-cells:
Always 1 (for I2C addresses)

- #size-cells:
Always 0

Example:
i2c0: i2c@18008000 {
compatible = "brcm,iproc-i2c";
reg = <0x18008000 0x100>;
#address-cells = <1>;
#size-cells = <0>;
interrupts = <GIC_SPI 85 IRQ_TYPE_NONE>;
clock-frequency = <100000>;

codec: wm8750@1a {
compatible = "wlf,wm8750";
reg = <0x1a>;
};
};
10 changes: 10 additions & 0 deletions drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,16 @@ config I2C_BCM2835
This support is also available as a module. If so, the module
will be called i2c-bcm2835.

config I2C_BCM_IPROC
tristate "Broadcom iProc I2C controller"
depends on ARCH_BCM_IPROC || COMPILE_TEST
default ARCH_BCM_IPROC
help
If you say yes to this option, support will be included for the
Broadcom iProc I2C controller.

If you don't know what to do here, say N.

config I2C_BCM_KONA
tristate "BCM Kona I2C adapter"
depends on ARCH_BCM_MOBILE
Expand Down
1 change: 1 addition & 0 deletions drivers/i2c/busses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ obj-$(CONFIG_I2C_AT91) += i2c-at91.o
obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o
obj-$(CONFIG_I2C_AXXIA) += i2c-axxia.o
obj-$(CONFIG_I2C_BCM2835) += i2c-bcm2835.o
obj-$(CONFIG_I2C_BCM_IPROC) += i2c-bcm-iproc.o
obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o
obj-$(CONFIG_I2C_CADENCE) += i2c-cadence.o
obj-$(CONFIG_I2C_CBUS_GPIO) += i2c-cbus-gpio.o
Expand Down
Loading

0 comments on commit e6e5dd3

Please sign in to comment.