I2C: mediatek: Add driver for MediaTek I2C controller
authorXudong Chen <xudong.chen@mediatek.com>
Thu, 21 May 2015 08:53:28 +0000 (16:53 +0800)
committerWolfram Sang <wsa@the-dreams.de>
Sun, 31 May 2015 23:28:09 +0000 (08:28 +0900)
The mediatek SoCs have I2C controller that handle I2C transfer.
This patch include common I2C bus driver.
This driver is compatible with I2C controller on mt65xx/mt81xx.

Signed-off-by: Xudong Chen <xudong.chen@mediatek.com>
Signed-off-by: Liguo Zhang <liguo.zhang@mediatek.com>
Signed-off-by: Eddie Huang <eddie.huang@mediatek.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Documentation/devicetree/bindings/i2c/i2c-mt6577.txt [new file with mode: 0644]
drivers/i2c/busses/Kconfig
drivers/i2c/busses/Makefile
drivers/i2c/busses/i2c-mt65xx.c [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/i2c/i2c-mt6577.txt b/Documentation/devicetree/bindings/i2c/i2c-mt6577.txt
new file mode 100644 (file)
index 0000000..0ce6fa3
--- /dev/null
@@ -0,0 +1,41 @@
+* Mediatek's I2C controller
+
+The Mediatek's I2C controller is used to interface with I2C devices.
+
+Required properties:
+  - compatible: value should be either of the following.
+      (a) "mediatek,mt6577-i2c", for i2c compatible with mt6577 i2c.
+      (b) "mediatek,mt6589-i2c", for i2c compatible with mt6589 i2c.
+      (c) "mediatek,mt8127-i2c", for i2c compatible with mt8127 i2c.
+      (d) "mediatek,mt8135-i2c", for i2c compatible with mt8135 i2c.
+      (e) "mediatek,mt8173-i2c", for i2c compatible with mt8173 i2c.
+  - reg: physical base address of the controller and dma base, length of memory
+    mapped region.
+  - interrupts: interrupt number to the cpu.
+  - clock-div: the fixed value for frequency divider of clock source in i2c
+    module. Each IC may be different.
+  - clocks: clock name from clock manager
+  - clock-names: Must include "main" and "dma", if enable have-pmic need include
+    "pmic" extra.
+
+Optional properties:
+  - clock-frequency: Frequency in Hz of the bus when transfer, the default value
+    is 100000.
+  - mediatek,have-pmic: platform can control i2c form special pmic side.
+    Only mt6589 and mt8135 support this feature.
+  - mediatek,use-push-pull: IO config use push-pull mode.
+
+Example:
+
+       i2c0: i2c@1100d000 {
+                       compatible = "mediatek,mt6577-i2c";
+                       reg = <0x1100d000 0x70>,
+                             <0x11000300 0x80>;
+                       interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
+                       clock-frequency = <400000>;
+                       mediatek,have-pmic;
+                       clock-div = <16>;
+                       clocks = <&i2c0_ck>, <&ap_dma_ck>;
+                       clock-names = "main", "dma";
+       };
+
Simple merge
Simple merge
Simple merge