blob: dc95047a265910baa8151569949d37bc70ee1bd5 [file] [log] [blame]
Philippe Reynes697f15e2018-10-11 18:31:58 +02001// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2018 Philippe Reynes <philippe.reynes@softathome.com>
William Zhanga2870172022-08-22 11:39:43 -07004 * Copyright 2022 Broadcom Ltd.
Philippe Reynes697f15e2018-10-11 18:31:58 +02005 */
6
William Zhanga2870172022-08-22 11:39:43 -07007#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
Philippe Reynes697f15e2018-10-11 18:31:58 +02009
10/ {
William Zhanga2870172022-08-22 11:39:43 -070011 compatible = "brcm,bcm6858", "brcm,bcmbca";
Philippe Reynes697f15e2018-10-11 18:31:58 +020012 #address-cells = <2>;
13 #size-cells = <2>;
14
William Zhanga2870172022-08-22 11:39:43 -070015 interrupt-parent = <&gic>;
Philippe Reynesd26e2312019-08-14 15:18:39 +020016
Philippe Reynes697f15e2018-10-11 18:31:58 +020017 cpus {
18 #address-cells = <2>;
19 #size-cells = <0>;
Philippe Reynes697f15e2018-10-11 18:31:58 +020020
William Zhanga2870172022-08-22 11:39:43 -070021 B53_0: cpu@0 {
22 compatible = "brcm,brahma-b53";
Philippe Reynes697f15e2018-10-11 18:31:58 +020023 device_type = "cpu";
24 reg = <0x0 0x0>;
William Zhanga2870172022-08-22 11:39:43 -070025 next-level-cache = <&L2_0>;
26 enable-method = "psci";
Philippe Reynes697f15e2018-10-11 18:31:58 +020027 };
28
William Zhanga2870172022-08-22 11:39:43 -070029 B53_1: cpu@1 {
30 compatible = "brcm,brahma-b53";
Philippe Reynes697f15e2018-10-11 18:31:58 +020031 device_type = "cpu";
32 reg = <0x0 0x1>;
William Zhanga2870172022-08-22 11:39:43 -070033 next-level-cache = <&L2_0>;
34 enable-method = "psci";
Philippe Reynes697f15e2018-10-11 18:31:58 +020035 };
36
William Zhanga2870172022-08-22 11:39:43 -070037 B53_2: cpu@2 {
38 compatible = "brcm,brahma-b53";
Philippe Reynes697f15e2018-10-11 18:31:58 +020039 device_type = "cpu";
40 reg = <0x0 0x2>;
William Zhanga2870172022-08-22 11:39:43 -070041 next-level-cache = <&L2_0>;
42 enable-method = "psci";
Philippe Reynes697f15e2018-10-11 18:31:58 +020043 };
44
William Zhanga2870172022-08-22 11:39:43 -070045 B53_3: cpu@3 {
46 compatible = "brcm,brahma-b53";
Philippe Reynes697f15e2018-10-11 18:31:58 +020047 device_type = "cpu";
48 reg = <0x0 0x3>;
William Zhanga2870172022-08-22 11:39:43 -070049 next-level-cache = <&L2_0>;
50 enable-method = "psci";
Philippe Reynes697f15e2018-10-11 18:31:58 +020051 };
52
William Zhanga2870172022-08-22 11:39:43 -070053 L2_0: l2-cache0 {
Philippe Reynes697f15e2018-10-11 18:31:58 +020054 compatible = "cache";
Philippe Reynes697f15e2018-10-11 18:31:58 +020055 };
56 };
57
William Zhanga2870172022-08-22 11:39:43 -070058 timer {
59 compatible = "arm,armv8-timer";
60 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
61 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
62 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
63 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
64 };
65
66 pmu: pmu {
67 compatible = "arm,armv8-pmuv3";
68 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
69 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
70 <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
71 <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
72 interrupt-affinity = <&B53_0>, <&B53_1>,
73 <&B53_2>, <&B53_3>;
74 };
75
Philippe Reynes697f15e2018-10-11 18:31:58 +020076 clocks {
Simon Glassd3a98cb2023-02-13 08:56:33 -070077 bootph-all;
Philippe Reynes697f15e2018-10-11 18:31:58 +020078
William Zhanga2870172022-08-22 11:39:43 -070079 periph_clk: periph_clk {
Philippe Reynes697f15e2018-10-11 18:31:58 +020080 compatible = "fixed-clock";
81 #clock-cells = <0>;
82 clock-frequency = <200000000>;
Philippe Reynes697f15e2018-10-11 18:31:58 +020083 };
Philippe Reynes560d7f42019-05-03 19:43:07 +020084
Philippe Reynesd26e2312019-08-14 15:18:39 +020085 hsspi_pll: hsspi-pll {
86 compatible = "fixed-factor-clock";
87 #clock-cells = <0>;
William Zhanga2870172022-08-22 11:39:43 -070088 clocks = <&periph_clk>;
Philippe Reynesd26e2312019-08-14 15:18:39 +020089 clock-mult = <2>;
90 clock-div = <1>;
91 };
92
William Zhanga2870172022-08-22 11:39:43 -070093 wdt_clk: wdt-clk {
94 compatible = "fixed-factor-clock";
Philippe Reynes560d7f42019-05-03 19:43:07 +020095 #clock-cells = <0>;
William Zhanga2870172022-08-22 11:39:43 -070096 clocks = <&periph_clk>;
97 clock-div = <4>;
98 clock-mult = <1>;
Philippe Reynes560d7f42019-05-03 19:43:07 +020099 };
Philippe Reynes697f15e2018-10-11 18:31:58 +0200100 };
101
William Zhanga2870172022-08-22 11:39:43 -0700102 psci {
103 compatible = "arm,psci-0.2";
104 method = "smc";
105 };
106
107 axi@81000000 {
Philippe Reynes697f15e2018-10-11 18:31:58 +0200108 compatible = "simple-bus";
William Zhanga2870172022-08-22 11:39:43 -0700109 #address-cells = <1>;
110 #size-cells = <1>;
111 ranges = <0x0 0x0 0x81000000 0x8000>;
112
113 gic: interrupt-controller@1000 {
114 compatible = "arm,gic-400";
115 #interrupt-cells = <3>;
116 interrupt-controller;
117 reg = <0x1000 0x1000>, /* GICD */
118 <0x2000 0x2000>, /* GICC */
119 <0x4000 0x2000>, /* GICH */
120 <0x6000 0x2000>; /* GICV */
121 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
122 IRQ_TYPE_LEVEL_HIGH)>;
123 };
124 };
125
126 bus@ff800000 {
127 compatible = "simple-bus";
128 #address-cells = <1>;
129 #size-cells = <1>;
130 ranges = <0x0 0x0 0xff800000 0x800000>;
Simon Glassd3a98cb2023-02-13 08:56:33 -0700131 bootph-all;
Philippe Reynes697f15e2018-10-11 18:31:58 +0200132
William Zhanga2870172022-08-22 11:39:43 -0700133 uart0: serial@640 {
Álvaro Fernández Rojas4ab29872018-12-01 18:42:09 +0100134 compatible = "brcm,bcm6345-uart";
William Zhanga2870172022-08-22 11:39:43 -0700135 reg = <0x640 0x18>;
136 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
137 clocks = <&periph_clk>;
138 clock-names = "refclk";
Philippe Reynes697f15e2018-10-11 18:31:58 +0200139 status = "disabled";
140 };
Philippe Reynese0ed3fc2019-01-28 15:37:30 +0100141
William Zhanga2870172022-08-22 11:39:43 -0700142 leds: led-controller@800 {
Philippe Reynes61c6b162019-03-22 17:02:02 +0100143 compatible = "brcm,bcm6858-leds";
William Zhanga2870172022-08-22 11:39:43 -0700144 reg = <0x800 0xe4>;
Philippe Reynes61c6b162019-03-22 17:02:02 +0100145
146 status = "disabled";
147 };
148
William Zhanga2870172022-08-22 11:39:43 -0700149 wdt1: watchdog@2780 {
Philippe Reynese0ed3fc2019-01-28 15:37:30 +0100150 compatible = "brcm,bcm6345-wdt";
William Zhanga2870172022-08-22 11:39:43 -0700151 reg = <0x2780 0x14>;
152 clocks = <&wdt_clk>;
Philippe Reynese0ed3fc2019-01-28 15:37:30 +0100153 };
154
William Zhanga2870172022-08-22 11:39:43 -0700155 wdt2: watchdog@27c0 {
Philippe Reynese0ed3fc2019-01-28 15:37:30 +0100156 compatible = "brcm,bcm6345-wdt";
William Zhanga2870172022-08-22 11:39:43 -0700157 reg = <0x27c0 0x14>;
158 clocks = <&wdt_clk>;
Philippe Reynese0ed3fc2019-01-28 15:37:30 +0100159 };
160
161 wdt-reboot {
162 compatible = "wdt-reboot";
163 wdt = <&wdt1>;
164 };
Philippe Reynesc0200c12019-03-07 11:36:37 +0100165
William Zhanga2870172022-08-22 11:39:43 -0700166 gpio0: gpio-controller@500 {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100167 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700168 reg = <0x500 0x4>,
169 <0x520 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100170 gpio-controller;
171 #gpio-cells = <2>;
172
173 status = "disabled";
174 };
175
William Zhanga2870172022-08-22 11:39:43 -0700176 gpio1: gpio-controller@504 {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100177 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700178 reg = <0x504 0x4>,
179 <0x524 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100180 gpio-controller;
181 #gpio-cells = <2>;
182
183 status = "disabled";
184 };
185
William Zhanga2870172022-08-22 11:39:43 -0700186 gpio2: gpio-controller@508 {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100187 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700188 reg = <0x508 0x4>,
189 <0x528 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100190 gpio-controller;
191 #gpio-cells = <2>;
192
193 status = "disabled";
194 };
195
William Zhanga2870172022-08-22 11:39:43 -0700196 gpio3: gpio-controller@50c {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100197 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700198 reg = <0x50c 0x4>,
199 <0x52c 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100200 gpio-controller;
201 #gpio-cells = <2>;
202
203 status = "disabled";
204 };
205
William Zhanga2870172022-08-22 11:39:43 -0700206 gpio4: gpio-controller@510 {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100207 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700208 reg = <0x510 0x4>,
209 <0x530 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100210 gpio-controller;
211 #gpio-cells = <2>;
212
213 status = "disabled";
214 };
215
William Zhanga2870172022-08-22 11:39:43 -0700216 gpio5: gpio-controller@514 {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100217 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700218 reg = <0x514 0x4>,
219 <0x534 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100220 gpio-controller;
221 #gpio-cells = <2>;
222
223 status = "disabled";
224 };
225
William Zhanga2870172022-08-22 11:39:43 -0700226 gpio6: gpio-controller@518 {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100227 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700228 reg = <0x518 0x4>,
229 <0x538 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100230 gpio-controller;
231 #gpio-cells = <2>;
232
233 status = "disabled";
234 };
235
William Zhanga2870172022-08-22 11:39:43 -0700236 gpio7: gpio-controller@51c {
Philippe Reynesc0200c12019-03-07 11:36:37 +0100237 compatible = "brcm,bcm6345-gpio";
William Zhanga2870172022-08-22 11:39:43 -0700238 reg = <0x51c 0x4>,
239 <0x53c 0x4>;
Philippe Reynesc0200c12019-03-07 11:36:37 +0100240 gpio-controller;
241 #gpio-cells = <2>;
242
243 status = "disabled";
244 };
Philippe Reynesd80b0882019-03-15 15:14:42 +0100245
William Zhanga2870172022-08-22 11:39:43 -0700246 hsspi: spi-controller@1000 {
Philippe Reynesd26e2312019-08-14 15:18:39 +0200247 compatible = "brcm,bcm6328-hsspi";
248 #address-cells = <1>;
249 #size-cells = <0>;
William Zhanga2870172022-08-22 11:39:43 -0700250 reg = <0x1000 0x600>;
Philippe Reynesd26e2312019-08-14 15:18:39 +0200251 clocks = <&hsspi_pll>, <&hsspi_pll>;
252 clock-names = "hsspi", "pll";
253 spi-max-frequency = <100000000>;
254 num-cs = <8>;
255
256 status = "disabled";
257 };
258
William Zhanga2870172022-08-22 11:39:43 -0700259 nand: nand-controller@1800 {
Philippe Reynesd80b0882019-03-15 15:14:42 +0100260 compatible = "brcm,nand-bcm6858",
261 "brcm,brcmnand-v5.0",
262 "brcm,brcmnand";
263 reg-names = "nand", "nand-int-base", "nand-cache";
William Zhanga2870172022-08-22 11:39:43 -0700264 reg = <0x1800 0x180>,
265 <0x2000 0x10>,
266 <0x1c00 0x200>;
Philippe Reynesd80b0882019-03-15 15:14:42 +0100267 parameter-page-big-endian = <0>;
268
269 status = "disabled";
270 };
Philippe Reynes697f15e2018-10-11 18:31:58 +0200271 };
272};