diff options
author | Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> | 2016-06-12 17:06:52 -0400 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2016-06-15 20:25:20 -0400 |
commit | 7c4163aae3d8e5b9bd72508f542a44d707f308b5 (patch) | |
tree | d32e29063e7fdd412ca3780f499f86c1f29b0d0c | |
parent | 5258bb5d980024dae22f4256329caec4fe5e98b3 (diff) |
ARM: dts: r8a7792: initial SoC device tree
The initial R8A7792 SoC device tree including CPU cores, GIC, timer, SYSC,
and the required clock descriptions.
Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
-rw-r--r-- | arch/arm/boot/dts/r8a7792.dtsi | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi new file mode 100644 index 000000000000..33f2362a1f52 --- /dev/null +++ b/arch/arm/boot/dts/r8a7792.dtsi | |||
@@ -0,0 +1,170 @@ | |||
1 | /* | ||
2 | * Device Tree Source for the r8a7792 SoC | ||
3 | * | ||
4 | * Copyright (C) 2016 Cogent Embedded Inc. | ||
5 | * | ||
6 | * This file is licensed under the terms of the GNU General Public License | ||
7 | * version 2. This program is licensed "as is" without any warranty of any | ||
8 | * kind, whether express or implied. | ||
9 | */ | ||
10 | |||
11 | #include <dt-bindings/clock/r8a7792-clock.h> | ||
12 | #include <dt-bindings/interrupt-controller/irq.h> | ||
13 | #include <dt-bindings/interrupt-controller/arm-gic.h> | ||
14 | #include <dt-bindings/power/r8a7792-sysc.h> | ||
15 | |||
16 | / { | ||
17 | compatible = "renesas,r8a7792"; | ||
18 | #address-cells = <2>; | ||
19 | #size-cells = <2>; | ||
20 | |||
21 | cpus { | ||
22 | #address-cells = <1>; | ||
23 | #size-cells = <0>; | ||
24 | |||
25 | cpu0: cpu@0 { | ||
26 | device_type = "cpu"; | ||
27 | compatible = "arm,cortex-a15"; | ||
28 | reg = <0>; | ||
29 | clock-frequency = <1000000000>; | ||
30 | clocks = <&cpg_clocks R8A7792_CLK_Z>; | ||
31 | power-domains = <&sysc R8A7792_PD_CA15_CPU0>; | ||
32 | next-level-cache = <&L2_CA15>; | ||
33 | }; | ||
34 | |||
35 | L2_CA15: cache-controller@0 { | ||
36 | compatible = "cache"; | ||
37 | reg = <0>; | ||
38 | cache-unified; | ||
39 | cache-level = <2>; | ||
40 | power-domains = <&sysc R8A7792_PD_CA15_SCU>; | ||
41 | }; | ||
42 | }; | ||
43 | |||
44 | soc { | ||
45 | compatible = "simple-bus"; | ||
46 | interrupt-parent = <&gic>; | ||
47 | |||
48 | #address-cells = <2>; | ||
49 | #size-cells = <2>; | ||
50 | ranges; | ||
51 | |||
52 | gic: interrupt-controller@f1001000 { | ||
53 | compatible = "arm,gic-400"; | ||
54 | #interrupt-cells = <3>; | ||
55 | interrupt-controller; | ||
56 | reg = <0 0xf1001000 0 0x1000>, | ||
57 | <0 0xf1002000 0 0x1000>, | ||
58 | <0 0xf1004000 0 0x2000>, | ||
59 | <0 0xf1006000 0 0x2000>; | ||
60 | interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | | ||
61 | IRQ_TYPE_LEVEL_HIGH)>; | ||
62 | }; | ||
63 | |||
64 | timer { | ||
65 | compatible = "arm,armv7-timer"; | ||
66 | interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | | ||
67 | IRQ_TYPE_LEVEL_LOW)>, | ||
68 | <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | | ||
69 | IRQ_TYPE_LEVEL_LOW)>, | ||
70 | <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | | ||
71 | IRQ_TYPE_LEVEL_LOW)>, | ||
72 | <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | | ||
73 | IRQ_TYPE_LEVEL_LOW)>; | ||
74 | }; | ||
75 | |||
76 | sysc: system-controller@e6180000 { | ||
77 | compatible = "renesas,r8a7792-sysc"; | ||
78 | reg = <0 0xe6180000 0 0x0200>; | ||
79 | #power-domain-cells = <1>; | ||
80 | }; | ||
81 | |||
82 | /* Special CPG clocks */ | ||
83 | cpg_clocks: cpg_clocks@e6150000 { | ||
84 | compatible = "renesas,r8a7792-cpg-clocks", | ||
85 | "renesas,rcar-gen2-cpg-clocks"; | ||
86 | reg = <0 0xe6150000 0 0x1000>; | ||
87 | clocks = <&extal_clk>; | ||
88 | #clock-cells = <1>; | ||
89 | clock-output-names = "main", "pll0", "pll1", "pll3", | ||
90 | "lb", "qspi", "z", "adsp"; | ||
91 | #power-domain-cells = <0>; | ||
92 | }; | ||
93 | |||
94 | /* Fixed factor clocks */ | ||
95 | zs_clk: zs { | ||
96 | compatible = "fixed-factor-clock"; | ||
97 | clocks = <&cpg_clocks R8A7792_CLK_PLL1>; | ||
98 | #clock-cells = <0>; | ||
99 | clock-div = <6>; | ||
100 | clock-mult = <1>; | ||
101 | }; | ||
102 | p_clk: p { | ||
103 | compatible = "fixed-factor-clock"; | ||
104 | clocks = <&cpg_clocks R8A7792_CLK_PLL1>; | ||
105 | #clock-cells = <0>; | ||
106 | clock-div = <24>; | ||
107 | clock-mult = <1>; | ||
108 | }; | ||
109 | cp_clk: cp { | ||
110 | compatible = "fixed-factor-clock"; | ||
111 | clocks = <&cpg_clocks R8A7792_CLK_PLL1>; | ||
112 | #clock-cells = <0>; | ||
113 | clock-div = <48>; | ||
114 | clock-mult = <1>; | ||
115 | }; | ||
116 | |||
117 | /* Gate clocks */ | ||
118 | mstp2_clks: mstp2_clks@e6150138 { | ||
119 | compatible = "renesas,r8a7792-mstp-clocks", | ||
120 | "renesas,cpg-mstp-clocks"; | ||
121 | reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>; | ||
122 | clocks = <&zs_clk>, <&zs_clk>; | ||
123 | #clock-cells = <1>; | ||
124 | clock-indices = < | ||
125 | R8A7792_CLK_SYS_DMAC1 R8A7792_CLK_SYS_DMAC0 | ||
126 | >; | ||
127 | clock-output-names = "sys-dmac1", "sys-dmac0"; | ||
128 | }; | ||
129 | mstp4_clks: mstp4_clks@e6150140 { | ||
130 | compatible = "renesas,r8a7792-mstp-clocks", | ||
131 | "renesas,cpg-mstp-clocks"; | ||
132 | reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; | ||
133 | clocks = <&cp_clk>; | ||
134 | #clock-cells = <1>; | ||
135 | clock-indices = <R8A7792_CLK_IRQC>; | ||
136 | clock-output-names = "irqc"; | ||
137 | }; | ||
138 | mstp7_clks: mstp7_clks@e615014c { | ||
139 | compatible = "renesas,r8a7792-mstp-clocks", | ||
140 | "renesas,cpg-mstp-clocks"; | ||
141 | reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>; | ||
142 | clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>, | ||
143 | <&p_clk>, <&p_clk>; | ||
144 | #clock-cells = <1>; | ||
145 | clock-indices = < | ||
146 | R8A7792_CLK_HSCIF1 R8A7792_CLK_HSCIF0 | ||
147 | R8A7792_CLK_SCIF3 R8A7792_CLK_SCIF2 | ||
148 | R8A7792_CLK_SCIF1 R8A7792_CLK_SCIF0 | ||
149 | >; | ||
150 | clock-output-names = "hscif1", "hscif0", "scif3", | ||
151 | "scif2", "scif1", "scif0"; | ||
152 | }; | ||
153 | }; | ||
154 | |||
155 | /* External root clock */ | ||
156 | extal_clk: extal { | ||
157 | compatible = "fixed-clock"; | ||
158 | #clock-cells = <0>; | ||
159 | /* This value must be overridden by the board. */ | ||
160 | clock-frequency = <0>; | ||
161 | }; | ||
162 | |||
163 | /* External SCIF clock */ | ||
164 | scif_clk: scif { | ||
165 | compatible = "fixed-clock"; | ||
166 | #clock-cells = <0>; | ||
167 | /* This value must be overridden by the board. */ | ||
168 | clock-frequency = <0>; | ||
169 | }; | ||
170 | }; | ||