diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-07 14:06:17 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-07 14:06:17 -0400 |
commit | 38f56f33ca381751f9b8910f67e7a805ec0b68cb (patch) | |
tree | 202f2ce60f3f43a948607ec76c8cc48c1cf73a4b /Documentation/devicetree/bindings/i2c | |
parent | fcba914542082b272f31c8e4c40000b88ed3208d (diff) | |
parent | 4183bef2e093a2f0aab45f2d5fed82b0e02aeacf (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.txt | 12 | ||||
-rw-r--r-- | Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt | 60 |
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 @@ | |||
3 | Required properties: | 3 | Required 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 | ||
11 | Examples: | 14 | Examples: |
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 @@ | |||
1 | NVIDIA Tegra20/Tegra30/Tegra114 I2C controller driver. | ||
2 | |||
3 | Required 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 | |||
49 | Example: | ||
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 | }; | ||