powerpc: Adding bindings for flexcan controller
authorBhaskar Upadhaya <bhaskar.upadhaya@freescale.com>
Tue, 19 Apr 2011 13:58:31 +0000 (19:28 +0530)
committerKumar Gala <galak@kernel.crashing.org>
Thu, 19 May 2011 06:14:31 +0000 (01:14 -0500)
Signed-off-by: Bhaskar Upadhaya <bhaskar.upadhaya@freescale.com>
Acked-By: Scott Wood <scottwood@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Documentation/devicetree/bindings/net/can/fsl-flexcan.txt [new file with mode: 0755]

diff --git a/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt b/Documentation/devicetree/bindings/net/can/fsl-flexcan.txt
new file mode 100755 (executable)
index 0000000..1a729f0
--- /dev/null
@@ -0,0 +1,61 @@
+CAN Device Tree Bindings
+------------------------
+2011 Freescale Semiconductor, Inc.
+
+fsl,flexcan-v1.0 nodes
+-----------------------
+In addition to the required compatible-, reg- and interrupt-properties, you can
+also specify which clock source shall be used for the controller.
+
+CPI Clock- Can Protocol Interface Clock
+       This CLK_SRC bit of CTRL(control register) selects the clock source to
+       the CAN Protocol Interface(CPI) to be either the peripheral clock
+       (driven by the PLL) or the crystal oscillator clock. The selected clock
+       is the one fed to the prescaler to generate the Serial Clock (Sclock).
+       The PRESDIV field of CTRL(control register) controls a prescaler that
+       generates the Serial Clock (Sclock), whose period defines the
+       time quantum used to compose the CAN waveform.
+
+Can Engine Clock Source
+       There are two sources for CAN clock
+       - Platform Clock  It represents the bus clock
+       - Oscillator Clock
+
+       Peripheral Clock (PLL)
+       --------------
+                    |
+                   ---------                 -------------
+                   |       |CPI Clock        | Prescaler |       Sclock
+                   |       |---------------->| (1.. 256) |------------>
+                   ---------                 -------------
+                     |  |
+       --------------  ---------------------CLK_SRC
+       Oscillator Clock
+
+- fsl,flexcan-clock-source : CAN Engine Clock Source.This property selects
+                            the peripheral clock. PLL clock is fed to the
+                            prescaler to generate the Serial Clock (Sclock).
+                            Valid values are "oscillator" and "platform"
+                            "oscillator": CAN engine clock source is oscillator clock.
+                            "platform" The CAN engine clock source is the bus clock
+                            (platform clock).
+
+- fsl,flexcan-clock-divider : for the reference and system clock, an additional
+                             clock divider can be specified.
+- clock-frequency: frequency required to calculate the bitrate for FlexCAN.
+
+Note:
+       - v1.0 of flexcan-v1.0 represent the IP block version for P1010 SOC.
+       - P1010 does not have oscillator as the Clock Source.So the default
+         Clock Source is platform clock.
+Examples:
+
+       can0@1c000 {
+               compatible = "fsl,flexcan-v1.0";
+               reg = <0x1c000 0x1000>;
+               interrupts = <48 0x2>;
+               interrupt-parent = <&mpic>;
+               fsl,flexcan-clock-source = "platform";
+               fsl,flexcan-clock-divider = <2>;
+               clock-frequency = <fixed by u-boot>;
+       };