diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/devicetree/bindings/clock/corenet-clock.txt | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/clock/corenet-clock.txt b/Documentation/devicetree/bindings/clock/corenet-clock.txt new file mode 100644 index 000000000000..24711af48e30 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/corenet-clock.txt | |||
@@ -0,0 +1,134 @@ | |||
1 | * Clock Block on Freescale CoreNet Platforms | ||
2 | |||
3 | Freescale CoreNet chips take primary clocking input from the external | ||
4 | SYSCLK signal. The SYSCLK input (frequency) is multiplied using | ||
5 | multiple phase locked loops (PLL) to create a variety of frequencies | ||
6 | which can then be passed to a variety of internal logic, including | ||
7 | cores and peripheral IP blocks. | ||
8 | Please refer to the Reference Manual for details. | ||
9 | |||
10 | 1. Clock Block Binding | ||
11 | |||
12 | Required properties: | ||
13 | - compatible: Should contain a specific clock block compatible string | ||
14 | and a single chassis clock compatible string. | ||
15 | Clock block strings include, but not limited to, one of the: | ||
16 | * "fsl,p2041-clockgen" | ||
17 | * "fsl,p3041-clockgen" | ||
18 | * "fsl,p4080-clockgen" | ||
19 | * "fsl,p5020-clockgen" | ||
20 | * "fsl,p5040-clockgen" | ||
21 | * "fsl,t4240-clockgen" | ||
22 | * "fsl,b4420-clockgen" | ||
23 | * "fsl,b4860-clockgen" | ||
24 | Chassis clock strings include: | ||
25 | * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks | ||
26 | * "fsl,qoriq-clockgen-2.0": for chassis 2.0 clocks | ||
27 | - reg: Describes the address of the device's resources within the | ||
28 | address space defined by its parent bus, and resource zero | ||
29 | represents the clock register set | ||
30 | - clock-frequency: Input system clock frequency | ||
31 | |||
32 | Recommended properties: | ||
33 | - ranges: Allows valid translation between child's address space and | ||
34 | parent's. Must be present if the device has sub-nodes. | ||
35 | - #address-cells: Specifies the number of cells used to represent | ||
36 | physical base addresses. Must be present if the device has | ||
37 | sub-nodes and set to 1 if present | ||
38 | - #size-cells: Specifies the number of cells used to represent | ||
39 | the size of an address. Must be present if the device has | ||
40 | sub-nodes and set to 1 if present | ||
41 | |||
42 | 2. Clock Provider/Consumer Binding | ||
43 | |||
44 | Most of the bindings are from the common clock binding[1]. | ||
45 | [1] Documentation/devicetree/bindings/clock/clock-bindings.txt | ||
46 | |||
47 | Required properties: | ||
48 | - compatible : Should include one of the following: | ||
49 | * "fsl,qoriq-core-pll-1.0" for core PLL clocks (v1.0) | ||
50 | * "fsl,qoriq-core-pll-2.0" for core PLL clocks (v2.0) | ||
51 | * "fsl,qoriq-core-mux-1.0" for core mux clocks (v1.0) | ||
52 | * "fsl,qoriq-core-mux-2.0" for core mux clocks (v2.0) | ||
53 | * "fsl,qoriq-sysclk-1.0": for input system clock (v1.0). | ||
54 | It takes parent's clock-frequency as its clock. | ||
55 | * "fsl,qoriq-sysclk-2.0": for input system clock (v2.0). | ||
56 | It takes parent's clock-frequency as its clock. | ||
57 | - #clock-cells: From common clock binding. The number of cells in a | ||
58 | clock-specifier. Should be <0> for "fsl,qoriq-sysclk-[1,2].0" | ||
59 | clocks, or <1> for "fsl,qoriq-core-pll-[1,2].0" clocks. | ||
60 | For "fsl,qoriq-core-pll-[1,2].0" clocks, the single | ||
61 | clock-specifier cell may take the following values: | ||
62 | * 0 - equal to the PLL frequency | ||
63 | * 1 - equal to the PLL frequency divided by 2 | ||
64 | * 2 - equal to the PLL frequency divided by 4 | ||
65 | |||
66 | Recommended properties: | ||
67 | - clocks: Should be the phandle of input parent clock | ||
68 | - clock-names: From common clock binding, indicates the clock name | ||
69 | - clock-output-names: From common clock binding, indicates the names of | ||
70 | output clocks | ||
71 | - reg: Should be the offset and length of clock block base address. | ||
72 | The length should be 4. | ||
73 | |||
74 | Example for clock block and clock provider: | ||
75 | / { | ||
76 | clockgen: global-utilities@e1000 { | ||
77 | compatible = "fsl,p5020-clockgen", "fsl,qoriq-clockgen-1.0"; | ||
78 | ranges = <0x0 0xe1000 0x1000>; | ||
79 | clock-frequency = <133333333>; | ||
80 | reg = <0xe1000 0x1000>; | ||
81 | #address-cells = <1>; | ||
82 | #size-cells = <1>; | ||
83 | |||
84 | sysclk: sysclk { | ||
85 | #clock-cells = <0>; | ||
86 | compatible = "fsl,qoriq-sysclk-1.0"; | ||
87 | clock-output-names = "sysclk"; | ||
88 | } | ||
89 | |||
90 | pll0: pll0@800 { | ||
91 | #clock-cells = <1>; | ||
92 | reg = <0x800 0x4>; | ||
93 | compatible = "fsl,qoriq-core-pll-1.0"; | ||
94 | clocks = <&sysclk>; | ||
95 | clock-output-names = "pll0", "pll0-div2"; | ||
96 | }; | ||
97 | |||
98 | pll1: pll1@820 { | ||
99 | #clock-cells = <1>; | ||
100 | reg = <0x820 0x4>; | ||
101 | compatible = "fsl,qoriq-core-pll-1.0"; | ||
102 | clocks = <&sysclk>; | ||
103 | clock-output-names = "pll1", "pll1-div2"; | ||
104 | }; | ||
105 | |||
106 | mux0: mux0@0 { | ||
107 | #clock-cells = <0>; | ||
108 | reg = <0x0 0x4>; | ||
109 | compatible = "fsl,qoriq-core-mux-1.0"; | ||
110 | clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; | ||
111 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | ||
112 | clock-output-names = "cmux0"; | ||
113 | }; | ||
114 | |||
115 | mux1: mux1@20 { | ||
116 | #clock-cells = <0>; | ||
117 | reg = <0x20 0x4>; | ||
118 | compatible = "fsl,qoriq-core-mux-1.0"; | ||
119 | clocks = <&pll0 0>, <&pll0 1>, <&pll1 0>, <&pll1 1>; | ||
120 | clock-names = "pll0", "pll0-div2", "pll1", "pll1-div2"; | ||
121 | clock-output-names = "cmux1"; | ||
122 | }; | ||
123 | }; | ||
124 | } | ||
125 | |||
126 | Example for clock consumer: | ||
127 | |||
128 | / { | ||
129 | cpu0: PowerPC,e5500@0 { | ||
130 | ... | ||
131 | clocks = <&mux0>; | ||
132 | ... | ||
133 | }; | ||
134 | } | ||