aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2015-02-02 10:28:12 -0500
committerWolfram Sang <wsa@the-dreams.de>2015-02-05 16:29:15 -0500
commit3a33a85401ecdb0e2c01ea86d9e36a5711ce01d4 (patch)
treef94aad5c7f9ee69d07a81db4e3fcaa1214202eb8 /Documentation/devicetree
parent8c340f6090e365ce5bac02eed07c1de3aa83f735 (diff)
i2c: ocores: fix clock-frequency binding usage
clock-frequency property is meant to control the bus frequency for i2c bus drivers, but it was incorrectly used to specify i2c controller input clock frequency. Introduce new attribute, opencores,ip-clock-frequency, that specifies i2c controller clock frequency and make clock-frequency attribute compatible with other i2c drivers. Maintain backwards compatibility in case opencores,ip-clock-frequency attribute is missing. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'Documentation/devicetree')
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-ocores.txt18
1 files changed, 16 insertions, 2 deletions
diff --git a/Documentation/devicetree/bindings/i2c/i2c-ocores.txt b/Documentation/devicetree/bindings/i2c/i2c-ocores.txt
index 1637c298a1b3..5bef3adf2c35 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-ocores.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-ocores.txt
@@ -4,15 +4,29 @@ Required properties:
4- compatible : "opencores,i2c-ocores" or "aeroflexgaisler,i2cmst" 4- compatible : "opencores,i2c-ocores" or "aeroflexgaisler,i2cmst"
5- reg : bus address start and address range size of device 5- reg : bus address start and address range size of device
6- interrupts : interrupt number 6- interrupts : interrupt number
7- clock-frequency : frequency of bus clock in Hz 7- opencores,ip-clock-frequency: frequency of the controller clock in Hz;
8 see the note below
8- #address-cells : should be <1> 9- #address-cells : should be <1>
9- #size-cells : should be <0> 10- #size-cells : should be <0>
10 11
11Optional properties: 12Optional properties:
13- clock-frequency : frequency of bus clock in Hz; see the note below.
14 Defaults to 100 KHz when the property is not specified
12- reg-shift : device register offsets are shifted by this value 15- reg-shift : device register offsets are shifted by this value
13- reg-io-width : io register width in bytes (1, 2 or 4) 16- reg-io-width : io register width in bytes (1, 2 or 4)
14- regstep : deprecated, use reg-shift above 17- regstep : deprecated, use reg-shift above
15 18
19Note
20clock-frequency property is meant to control the bus frequency for i2c bus
21drivers, but it was incorrectly used to specify i2c controller input clock
22frequency. So the following rules are set to fix this situation:
23- if clock-frequency is present and opencores,ip-clock-frequency is not,
24 then clock-frequency specifies i2c controller clock frequency. This is
25 to keep backwards compatibility with setups using old DTB. i2c bus
26 frequency is fixed at 100 KHz.
27- if opencores,ip-clock-frequency is present it specifies i2c controller
28 clock frequency. clock-frequency property specifies i2c bus frequency.
29
16Example: 30Example:
17 31
18 i2c0: ocores@a0000000 { 32 i2c0: ocores@a0000000 {
@@ -21,7 +35,7 @@ Example:
21 compatible = "opencores,i2c-ocores"; 35 compatible = "opencores,i2c-ocores";
22 reg = <0xa0000000 0x8>; 36 reg = <0xa0000000 0x8>;
23 interrupts = <10>; 37 interrupts = <10>;
24 clock-frequency = <20000000>; 38 opencores,ip-clock-frequency = <20000000>;
25 39
26 reg-shift = <0>; /* 8 bit registers */ 40 reg-shift = <0>; /* 8 bit registers */
27 reg-io-width = <1>; /* 8 bit read/write */ 41 reg-io-width = <1>; /* 8 bit read/write */