Merge branch 'at91-3.16-cleanup' into at91-3.16-dt3
[deliverable/linux.git] / Documentation / devicetree / bindings / clock / at91-clock.txt
index cd5e23912888cf4350750fe0adc908fb895e3d08..b3d544ca522a5465755846f6f59e19c2f8cc7e40 100644 (file)
@@ -6,6 +6,16 @@ This binding uses the common clock binding[1].
 
 Required properties:
 - compatible : shall be one of the following:
+       "atmel,at91sam9x5-sckc":
+               at91 SCKC (Slow Clock Controller)
+               This node contains the slow clock definitions.
+
+       "atmel,at91sam9x5-clk-slow-osc":
+               at91 slow oscillator
+
+       "atmel,at91sam9x5-clk-slow-rc-osc":
+               at91 internal slow RC oscillator
+
        "atmel,at91rm9200-pmc" or
        "atmel,at91sam9g45-pmc" or
        "atmel,at91sam9n12-pmc" or
@@ -15,8 +25,18 @@ Required properties:
                All at91 specific clocks (clocks defined below) must be child
                node of the PMC node.
 
+       "atmel,at91sam9x5-clk-slow" (under sckc node)
+       or
+       "atmel,at91sam9260-clk-slow" (under pmc node):
+               at91 slow clk
+
+       "atmel,at91rm9200-clk-main-osc"
+       "atmel,at91sam9x5-clk-main-rc-osc"
+               at91 main clk sources
+
+       "atmel,at91sam9x5-clk-main"
        "atmel,at91rm9200-clk-main":
-               at91 main oscillator
+               at91 main clock
 
        "atmel,at91rm9200-clk-master" or
        "atmel,at91sam9x5-clk-master":
@@ -54,6 +74,63 @@ Required properties:
        "atmel,at91sam9x5-clk-utmi":
                at91 utmi clock
 
+Required properties for SCKC node:
+- reg : defines the IO memory reserved for the SCKC.
+- #size-cells : shall be 0 (reg is used to encode clk id).
+- #address-cells : shall be 1 (reg is used to encode clk id).
+
+
+For example:
+       sckc: sckc@fffffe50 {
+               compatible = "atmel,sama5d3-pmc";
+               reg = <0xfffffe50 0x4>
+               #size-cells = <0>;
+               #address-cells = <1>;
+
+               /* put at91 slow clocks here */
+       };
+
+
+Required properties for internal slow RC oscillator:
+- #clock-cells : from common clock binding; shall be set to 0.
+- clock-frequency : define the internal RC oscillator frequency.
+
+Optional properties:
+- clock-accuracy : define the internal RC oscillator accuracy.
+
+For example:
+       slow_rc_osc: slow_rc_osc {
+               compatible = "atmel,at91sam9x5-clk-slow-rc-osc";
+               clock-frequency = <32768>;
+               clock-accuracy = <50000000>;
+       };
+
+Required properties for slow oscillator:
+- #clock-cells : from common clock binding; shall be set to 0.
+- clocks : shall encode the main osc source clk sources (see atmel datasheet).
+
+Optional properties:
+- atmel,osc-bypass : boolean property. Set this when a clock signal is directly
+  provided on XIN.
+
+For example:
+       slow_osc: slow_osc {
+               compatible = "atmel,at91rm9200-clk-slow-osc";
+               #clock-cells = <0>;
+               clocks = <&slow_xtal>;
+       };
+
+Required properties for slow clock:
+- #clock-cells : from common clock binding; shall be set to 0.
+- clocks : shall encode the slow clk sources (see atmel datasheet).
+
+For example:
+       clk32k: slck {
+               compatible = "atmel,at91sam9x5-clk-slow";
+               #clock-cells = <0>;
+               clocks = <&slow_rc_osc &slow_osc>;
+       };
+
 Required properties for PMC node:
 - reg : defines the IO memory reserved for the PMC.
 - #size-cells : shall be 0 (reg is used to encode clk id).
@@ -62,7 +139,7 @@ Required properties for PMC node:
 - interrupt-controller : tell that the PMC is an interrupt controller.
 - #interrupt-cells : must be set to 1. The first cell encodes the interrupt id,
        and reflect the bit position in the PMC_ER/DR/SR registers.
-       You can use the dt macros defined in dt-bindings/clk/at91.h.
+       You can use the dt macros defined in dt-bindings/clock/at91.h.
        0 (AT91_PMC_MOSCS) -> main oscillator ready
        1 (AT91_PMC_LOCKA) -> PLL A ready
        2 (AT91_PMC_LOCKB) -> PLL B ready
@@ -85,24 +162,57 @@ For example:
                /* put at91 clocks here */
        };
 
+Required properties for main clock internal RC oscillator:
+- interrupt-parent : must reference the PMC node.
+- interrupts : shall be set to "<0>".
+- clock-frequency : define the internal RC oscillator frequency.
+
+Optional properties:
+- clock-accuracy : define the internal RC oscillator accuracy.
+
+For example:
+       main_rc_osc: main_rc_osc {
+               compatible = "atmel,at91sam9x5-clk-main-rc-osc";
+               interrupt-parent = <&pmc>;
+               interrupts = <0>;
+               clock-frequency = <12000000>;
+               clock-accuracy = <50000000>;
+       };
+
+Required properties for main clock oscillator:
+- interrupt-parent : must reference the PMC node.
+- interrupts : shall be set to "<0>".
+- #clock-cells : from common clock binding; shall be set to 0.
+- clocks : shall encode the main osc source clk sources (see atmel datasheet).
+
+Optional properties:
+- atmel,osc-bypass : boolean property. Specified if a clock signal is provided
+  on XIN.
+
+  clock signal is directly provided on XIN pin.
+
+For example:
+       main_osc: main_osc {
+               compatible = "atmel,at91rm9200-clk-main-osc";
+               interrupt-parent = <&pmc>;
+               interrupts = <0>;
+               #clock-cells = <0>;
+               clocks = <&main_xtal>;
+       };
+
 Required properties for main clock:
 - interrupt-parent : must reference the PMC node.
 - interrupts : shall be set to "<0>".
 - #clock-cells : from common clock binding; shall be set to 0.
-- clocks (optional if clock-frequency is provided) : shall be the slow clock
-       phandle. This clock is used to calculate the main clock rate if
-       "clock-frequency" is not provided.
-- clock-frequency : the main oscillator frequency.Prefer the use of
-       "clock-frequency" over automatic clock rate calculation.
+- clocks : shall encode the main clk sources (see atmel datasheet).
 
 For example:
        main: mainck {
-               compatible = "atmel,at91rm9200-clk-main";
+               compatible = "atmel,at91sam9x5-clk-main";
                interrupt-parent = <&pmc>;
                interrupts = <0>;
                #clock-cells = <0>;
-               clocks = <&ck32k>;
-               clock-frequency = <18432000>;
+               clocks = <&main_rc_osc &main_osc>;
        };
 
 Required properties for master clock:
This page took 0.026021 seconds and 5 git commands to generate.