aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/i2c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-05-07 14:06:17 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-05-07 14:06:17 -0400
commit38f56f33ca381751f9b8910f67e7a805ec0b68cb (patch)
tree202f2ce60f3f43a948607ec76c8cc48c1cf73a4b /Documentation/devicetree/bindings/i2c
parentfcba914542082b272f31c8e4c40000b88ed3208d (diff)
parent4183bef2e093a2f0aab45f2d5fed82b0e02aeacf (diff)
Merge tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC device tree updates (part 2) from Arnd Bergmann: "These are mostly new device tree bindings for existing drivers, as well as changes to the device tree source files to add support for those devices, and a couple of new boards, most notably Samsung's Exynos5 based Chromebook. The changes depend on earlier platform specific updates and touch the usual platforms: omap, exynos, tegra, mxs, mvebu and davinci." * tag 'dt-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (169 commits) ARM: exynos: dts: cros5250: add EC device ARM: dts: Add sbs-battery for exynos5250-snow ARM: dts: Add i2c-arbitrator bus for exynos5250-snow ARM: dts: add mshc controller node for Exynos4x12 SoCs ARM: dts: Add chip-id controller node on Exynos4/5 SoC ARM: EXYNOS: Create virtual I/O mapping for Chip-ID controller using device tree ARM: davinci: da850-evm: add SPI flash support ARM: davinci: da850: override SPI DT node device name ARM: davinci: da850: add SPI1 DT node spi/davinci: add DT binding documentation spi/davinci: no wildcards in DT compatible property ARM: dts: mvebu: Convert mvebu device tree files to 64 bits ARM: dts: mvebu: introduce internal-regs node ARM: dts: mvebu: Convert all the mvebu files to use the range property ARM: dts: mvebu: move all peripherals inside soc ARM: dts: mvebu: fix cpus section indentation ARM: davinci: da850: add EHRPWM & ECAP DT node ARM/dts: OMAP3: fix pinctrl-single configuration ARM: dts: Add OMAP3430 SDP NOR flash memory binding ARM: dts: Add NOR flash bindings for OMAP2420 H4 ...
Diffstat (limited to 'Documentation/devicetree/bindings/i2c')
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-mxs.txt12
-rw-r--r--Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt60
2 files changed, 68 insertions, 4 deletions
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mxs.txt b/Documentation/devicetree/bindings/i2c/i2c-mxs.txt
index 7a3fe9e5f4cb..4e1c8ac01eba 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-mxs.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-mxs.txt
@@ -3,10 +3,13 @@
3Required properties: 3Required properties:
4- compatible: Should be "fsl,<chip>-i2c" 4- compatible: Should be "fsl,<chip>-i2c"
5- reg: Should contain registers location and length 5- reg: Should contain registers location and length
6- interrupts: Should contain ERROR and DMA interrupts 6- interrupts: Should contain ERROR interrupt number
7- clock-frequency: Desired I2C bus clock frequency in Hz. 7- clock-frequency: Desired I2C bus clock frequency in Hz.
8 Only 100000Hz and 400000Hz modes are supported. 8 Only 100000Hz and 400000Hz modes are supported.
9- fsl,i2c-dma-channel: APBX DMA channel for the I2C 9- dmas: DMA specifier, consisting of a phandle to DMA controller node
10 and I2C DMA channel ID.
11 Refer to dma.txt and fsl-mxs-dma.txt for details.
12- dma-names: Must be "rx-tx".
10 13
11Examples: 14Examples:
12 15
@@ -15,7 +18,8 @@ i2c0: i2c@80058000 {
15 #size-cells = <0>; 18 #size-cells = <0>;
16 compatible = "fsl,imx28-i2c"; 19 compatible = "fsl,imx28-i2c";
17 reg = <0x80058000 2000>; 20 reg = <0x80058000 2000>;
18 interrupts = <111 68>; 21 interrupts = <111>;
19 clock-frequency = <100000>; 22 clock-frequency = <100000>;
20 fsl,i2c-dma-channel = <6>; 23 dmas = <&dma_apbx 6>;
24 dma-names = "rx-tx";
21}; 25};
diff --git a/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt
new file mode 100644
index 000000000000..ef77cc7a0e46
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt
@@ -0,0 +1,60 @@
1NVIDIA Tegra20/Tegra30/Tegra114 I2C controller driver.
2
3Required properties:
4- compatible : should be:
5 "nvidia,tegra114-i2c"
6 "nvidia,tegra30-i2c"
7 "nvidia,tegra20-i2c"
8 "nvidia,tegra20-i2c-dvc"
9 Details of compatible are as follows:
10 nvidia,tegra20-i2c-dvc: Tegra20 has specific I2C controller called as DVC I2C
11 controller. This only support master mode of I2C communication. Register
12 interface/offset and interrupts handling are different than generic I2C
13 controller. Driver of DVC I2C controller is only compatible with
14 "nvidia,tegra20-i2c-dvc".
15 nvidia,tegra20-i2c: Tegra20 has 4 generic I2C controller. This can support
16 master and slave mode of I2C communication. The i2c-tegra driver only
17 support master mode of I2C communication. Driver of I2C controller is
18 only compatible with "nvidia,tegra20-i2c".
19 nvidia,tegra30-i2c: Tegra30 has 5 generic I2C controller. This controller is
20 very much similar to Tegra20 I2C controller with additional feature:
21 Continue Transfer Support. This feature helps to implement M_NO_START
22 as per I2C core API transfer flags. Driver of I2C controller is
23 compatible with "nvidia,tegra30-i2c" to enable the continue transfer
24 support. This is also compatible with "nvidia,tegra20-i2c" without
25 continue transfer support.
26 nvidia,tegra114-i2c: Tegra114 has 5 generic I2C controller. This controller is
27 very much similar to Tegra30 I2C controller with some hardware
28 modification:
29 - Tegra30/Tegra20 I2C controller has 2 clock source called div-clk and
30 fast-clk. Tegra114 has only one clock source called as div-clk and
31 hence clock mechanism is changed in I2C controller.
32 - Tegra30/Tegra20 I2C controller has enabled per packet transfer by
33 default and there is no way to disable it. Tegra114 has this
34 interrupt disable by default and SW need to enable explicitly.
35 Due to above changes, Tegra114 I2C driver makes incompatible with
36 previous hardware driver. Hence, tegra114 I2C controller is compatible
37 with "nvidia,tegra114-i2c".
38- reg: Should contain I2C controller registers physical address and length.
39- interrupts: Should contain I2C controller interrupts.
40- address-cells: Address cells for I2C device address.
41- size-cells: Size of the I2C device address.
42- clocks: Clock ID as per
43 Documentation/devicetree/bindings/clock/tegra<chip-id>.txt
44 for I2C controller.
45- clock-names: Name of the clock:
46 Tegra20/Tegra30 I2C controller: "div-clk and "fast-clk".
47 Tegra114 I2C controller: "div-clk".
48
49Example:
50
51 i2c@7000c000 {
52 compatible = "nvidia,tegra20-i2c";
53 reg = <0x7000c000 0x100>;
54 interrupts = <0 38 0x04>;
55 #address-cells = <1>;
56 #size-cells = <0>;
57 clocks = <&tegra_car 12>, <&tegra_car 124>;
58 clock-names = "div-clk", "fast-clk";
59 status = "disabled";
60 };