xref: /linux/arch/arm/boot/dts/broadcom/bcm6878.dtsi (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
16bcad714SAnand Gore// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
26bcad714SAnand Gore/*
36bcad714SAnand Gore * Copyright 2022 Broadcom Ltd.
46bcad714SAnand Gore */
56bcad714SAnand Gore
66bcad714SAnand Gore#include <dt-bindings/interrupt-controller/arm-gic.h>
76bcad714SAnand Gore#include <dt-bindings/interrupt-controller/irq.h>
86bcad714SAnand Gore
96bcad714SAnand Gore/ {
106bcad714SAnand Gore	compatible = "brcm,bcm6878", "brcm,bcmbca";
116bcad714SAnand Gore	#address-cells = <1>;
126bcad714SAnand Gore	#size-cells = <1>;
136bcad714SAnand Gore
146bcad714SAnand Gore	interrupt-parent = <&gic>;
156bcad714SAnand Gore
166bcad714SAnand Gore	cpus {
176bcad714SAnand Gore		#address-cells = <1>;
186bcad714SAnand Gore		#size-cells = <0>;
196bcad714SAnand Gore
206bcad714SAnand Gore		CA7_0: cpu@0 {
216bcad714SAnand Gore			device_type = "cpu";
226bcad714SAnand Gore			compatible = "arm,cortex-a7";
236bcad714SAnand Gore			reg = <0x0>;
246bcad714SAnand Gore			next-level-cache = <&L2_0>;
256bcad714SAnand Gore			enable-method = "psci";
266bcad714SAnand Gore		};
276bcad714SAnand Gore
286bcad714SAnand Gore		CA7_1: cpu@1 {
296bcad714SAnand Gore			device_type = "cpu";
306bcad714SAnand Gore			compatible = "arm,cortex-a7";
316bcad714SAnand Gore			reg = <0x1>;
326bcad714SAnand Gore			next-level-cache = <&L2_0>;
336bcad714SAnand Gore			enable-method = "psci";
346bcad714SAnand Gore		};
35f75fccbdSWilliam Zhang
366bcad714SAnand Gore		L2_0: l2-cache0 {
376bcad714SAnand Gore			compatible = "cache";
38b2302467SPierre Gondois			cache-level = <2>;
390db4bb04SKrzysztof Kozlowski			cache-unified;
406bcad714SAnand Gore		};
416bcad714SAnand Gore	};
426bcad714SAnand Gore
436bcad714SAnand Gore	timer {
446bcad714SAnand Gore		compatible = "arm,armv7-timer";
45925fbca4SWilliam Zhang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
46925fbca4SWilliam Zhang			<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
47925fbca4SWilliam Zhang			<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
48925fbca4SWilliam Zhang			<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
496bcad714SAnand Gore		arm,cpu-registers-not-fw-configured;
506bcad714SAnand Gore	};
516bcad714SAnand Gore
526bcad714SAnand Gore	pmu: pmu {
536bcad714SAnand Gore		compatible = "arm,cortex-a7-pmu";
546bcad714SAnand Gore		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
556bcad714SAnand Gore			<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
566bcad714SAnand Gore		interrupt-affinity = <&CA7_0>, <&CA7_1>;
576bcad714SAnand Gore	};
586bcad714SAnand Gore
596bcad714SAnand Gore	clocks: clocks {
606bcad714SAnand Gore		periph_clk: periph-clk {
616bcad714SAnand Gore			compatible = "fixed-clock";
626bcad714SAnand Gore			#clock-cells = <0>;
636bcad714SAnand Gore			clock-frequency = <200000000>;
646bcad714SAnand Gore		};
657858ddedSWilliam Zhang
666bcad714SAnand Gore		uart_clk: uart-clk {
676bcad714SAnand Gore			compatible = "fixed-factor-clock";
686bcad714SAnand Gore			#clock-cells = <0>;
696bcad714SAnand Gore			clocks = <&periph_clk>;
706bcad714SAnand Gore			clock-div = <4>;
716bcad714SAnand Gore			clock-mult = <1>;
726bcad714SAnand Gore		};
737858ddedSWilliam Zhang
747858ddedSWilliam Zhang		hsspi_pll: hsspi-pll {
757858ddedSWilliam Zhang			compatible = "fixed-clock";
767858ddedSWilliam Zhang			#clock-cells = <0>;
777858ddedSWilliam Zhang			clock-frequency = <200000000>;
787858ddedSWilliam Zhang		};
796bcad714SAnand Gore	};
806bcad714SAnand Gore
816bcad714SAnand Gore	psci {
826bcad714SAnand Gore		compatible = "arm,psci-0.2";
836bcad714SAnand Gore		method = "smc";
846bcad714SAnand Gore	};
856bcad714SAnand Gore
866bcad714SAnand Gore	axi@81000000 {
876bcad714SAnand Gore		compatible = "simple-bus";
886bcad714SAnand Gore		#address-cells = <1>;
896bcad714SAnand Gore		#size-cells = <1>;
906bcad714SAnand Gore		ranges = <0 0x81000000 0x8000>;
916bcad714SAnand Gore
926bcad714SAnand Gore		gic: interrupt-controller@1000 {
936bcad714SAnand Gore			compatible = "arm,cortex-a7-gic";
946bcad714SAnand Gore			#interrupt-cells = <3>;
956bcad714SAnand Gore			interrupt-controller;
966bcad714SAnand Gore			reg = <0x1000 0x1000>,
976bcad714SAnand Gore				<0x2000 0x2000>,
986bcad714SAnand Gore				<0x4000 0x2000>,
996bcad714SAnand Gore				<0x6000 0x2000>;
1006bcad714SAnand Gore			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
1016bcad714SAnand Gore					IRQ_TYPE_LEVEL_HIGH)>;
1026bcad714SAnand Gore		};
1036bcad714SAnand Gore	};
1046bcad714SAnand Gore
1056bcad714SAnand Gore	bus@ff800000 {
1066bcad714SAnand Gore		compatible = "simple-bus";
1076bcad714SAnand Gore		#address-cells = <1>;
1086bcad714SAnand Gore		#size-cells = <1>;
1096bcad714SAnand Gore		ranges = <0 0xff800000 0x800000>;
1106bcad714SAnand Gore
111*b7f8a3a5SLinus Walleij		watchdog@480 {
112*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-wdt";
113*b7f8a3a5SLinus Walleij			reg = <0x480 0x10>;
114*b7f8a3a5SLinus Walleij		};
115*b7f8a3a5SLinus Walleij
116*b7f8a3a5SLinus Walleij		watchdog@4c0 {
117*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-wdt";
118*b7f8a3a5SLinus Walleij			reg = <0x4c0 0x10>;
119*b7f8a3a5SLinus Walleij			status = "disabled";
120*b7f8a3a5SLinus Walleij		};
121*b7f8a3a5SLinus Walleij
122*b7f8a3a5SLinus Walleij		/* GPIOs 0 .. 31 */
123*b7f8a3a5SLinus Walleij		gpio0: gpio@500 {
124*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
125*b7f8a3a5SLinus Walleij			reg = <0x500 0x04>, <0x520 0x04>;
126*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
127*b7f8a3a5SLinus Walleij			gpio-controller;
128*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
129*b7f8a3a5SLinus Walleij			status = "disabled";
130*b7f8a3a5SLinus Walleij		};
131*b7f8a3a5SLinus Walleij
132*b7f8a3a5SLinus Walleij		/* GPIOs 32 .. 63 */
133*b7f8a3a5SLinus Walleij		gpio1: gpio@504 {
134*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
135*b7f8a3a5SLinus Walleij			reg = <0x504 0x04>, <0x524 0x04>;
136*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
137*b7f8a3a5SLinus Walleij			gpio-controller;
138*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
139*b7f8a3a5SLinus Walleij			status = "disabled";
140*b7f8a3a5SLinus Walleij		};
141*b7f8a3a5SLinus Walleij
142*b7f8a3a5SLinus Walleij		/* GPIOs 64 .. 95 */
143*b7f8a3a5SLinus Walleij		gpio2: gpio@508 {
144*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
145*b7f8a3a5SLinus Walleij			reg = <0x508 0x04>, <0x528 0x04>;
146*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
147*b7f8a3a5SLinus Walleij			gpio-controller;
148*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
149*b7f8a3a5SLinus Walleij			status = "disabled";
150*b7f8a3a5SLinus Walleij		};
151*b7f8a3a5SLinus Walleij
152*b7f8a3a5SLinus Walleij		/* GPIOs 96 .. 127 */
153*b7f8a3a5SLinus Walleij		gpio3: gpio@50c {
154*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
155*b7f8a3a5SLinus Walleij			reg = <0x50c 0x04>, <0x52c 0x04>;
156*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
157*b7f8a3a5SLinus Walleij			gpio-controller;
158*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
159*b7f8a3a5SLinus Walleij			status = "disabled";
160*b7f8a3a5SLinus Walleij		};
161*b7f8a3a5SLinus Walleij
162*b7f8a3a5SLinus Walleij		/* GPIOs 128 .. 159 */
163*b7f8a3a5SLinus Walleij		gpio4: gpio@510 {
164*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
165*b7f8a3a5SLinus Walleij			reg = <0x510 0x04>, <0x530 0x04>;
166*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
167*b7f8a3a5SLinus Walleij			gpio-controller;
168*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
169*b7f8a3a5SLinus Walleij			status = "disabled";
170*b7f8a3a5SLinus Walleij		};
171*b7f8a3a5SLinus Walleij
172*b7f8a3a5SLinus Walleij		/* GPIOs 160 .. 191 */
173*b7f8a3a5SLinus Walleij		gpio5: gpio@514 {
174*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
175*b7f8a3a5SLinus Walleij			reg = <0x514 0x04>, <0x534 0x04>;
176*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
177*b7f8a3a5SLinus Walleij			gpio-controller;
178*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
179*b7f8a3a5SLinus Walleij			status = "disabled";
180*b7f8a3a5SLinus Walleij		};
181*b7f8a3a5SLinus Walleij
182*b7f8a3a5SLinus Walleij		/* GPIOs 192 .. 223 */
183*b7f8a3a5SLinus Walleij		gpio6: gpio@518 {
184*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
185*b7f8a3a5SLinus Walleij			reg = <0x518 0x04>, <0x538 0x04>;
186*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
187*b7f8a3a5SLinus Walleij			gpio-controller;
188*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
189*b7f8a3a5SLinus Walleij			status = "disabled";
190*b7f8a3a5SLinus Walleij		};
191*b7f8a3a5SLinus Walleij
192*b7f8a3a5SLinus Walleij		/* GPIOs 224 .. 255 */
193*b7f8a3a5SLinus Walleij		gpio7: gpio@51c {
194*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm6345-gpio";
195*b7f8a3a5SLinus Walleij			reg = <0x51c 0x04>, <0x53c 0x04>;
196*b7f8a3a5SLinus Walleij			reg-names = "dirout", "dat";
197*b7f8a3a5SLinus Walleij			gpio-controller;
198*b7f8a3a5SLinus Walleij			#gpio-cells = <2>;
199*b7f8a3a5SLinus Walleij			status = "disabled";
200*b7f8a3a5SLinus Walleij		};
201*b7f8a3a5SLinus Walleij
202*b7f8a3a5SLinus Walleij		rng@b80 {
203*b7f8a3a5SLinus Walleij			compatible = "brcm,iproc-rng200";
204*b7f8a3a5SLinus Walleij			reg = <0xb80 0x28>;
205*b7f8a3a5SLinus Walleij			interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
206*b7f8a3a5SLinus Walleij		};
207*b7f8a3a5SLinus Walleij
208*b7f8a3a5SLinus Walleij		leds: led-controller@700 {
209*b7f8a3a5SLinus Walleij			#address-cells = <1>;
210*b7f8a3a5SLinus Walleij			#size-cells = <0>;
211*b7f8a3a5SLinus Walleij			compatible = "brcm,bcm63138-leds";
212*b7f8a3a5SLinus Walleij			reg = <0x700 0xdc>;
213*b7f8a3a5SLinus Walleij			status = "disabled";
214*b7f8a3a5SLinus Walleij		};
215*b7f8a3a5SLinus Walleij
2167858ddedSWilliam Zhang		hsspi: spi@1000 {
2177858ddedSWilliam Zhang			#address-cells = <1>;
2187858ddedSWilliam Zhang			#size-cells = <0>;
2197858ddedSWilliam Zhang			compatible = "brcm,bcm6878-hsspi", "brcm,bcmbca-hsspi-v1.0";
2207858ddedSWilliam Zhang			reg = <0x1000 0x600>;
2217858ddedSWilliam Zhang			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
2227858ddedSWilliam Zhang			clocks = <&hsspi_pll &hsspi_pll>;
2237858ddedSWilliam Zhang			clock-names = "hsspi", "pll";
2247858ddedSWilliam Zhang			num-cs = <8>;
2257858ddedSWilliam Zhang			status = "disabled";
2267858ddedSWilliam Zhang		};
2277858ddedSWilliam Zhang
228d42d8e82SWilliam Zhang		nand_controller: nand-controller@1800 {
229d42d8e82SWilliam Zhang			#address-cells = <1>;
230d42d8e82SWilliam Zhang			#size-cells = <0>;
231d42d8e82SWilliam Zhang			compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
232d42d8e82SWilliam Zhang			reg = <0x1800 0x600>, <0x2000 0x10>;
233d42d8e82SWilliam Zhang			reg-names = "nand", "nand-int-base";
234d42d8e82SWilliam Zhang			status = "disabled";
235d42d8e82SWilliam Zhang
236d42d8e82SWilliam Zhang			nandcs: nand@0 {
237d42d8e82SWilliam Zhang				compatible = "brcm,nandcs";
238d42d8e82SWilliam Zhang				reg = <0>;
239d42d8e82SWilliam Zhang			};
240d42d8e82SWilliam Zhang		};
241d42d8e82SWilliam Zhang
242*b7f8a3a5SLinus Walleij		pl081_dma: dma-controller@11000 {
243*b7f8a3a5SLinus Walleij			compatible = "arm,pl081", "arm,primecell";
244*b7f8a3a5SLinus Walleij			// The magic B105F00D info is missing
245*b7f8a3a5SLinus Walleij			arm,primecell-periphid = <0x00041081>;
246*b7f8a3a5SLinus Walleij			reg = <0x11000 0x1000>;
247*b7f8a3a5SLinus Walleij			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
248*b7f8a3a5SLinus Walleij			memcpy-burst-size = <256>;
249*b7f8a3a5SLinus Walleij			memcpy-bus-width = <32>;
250*b7f8a3a5SLinus Walleij			clocks = <&periph_clk>;
251*b7f8a3a5SLinus Walleij			clock-names = "apb_pclk";
252*b7f8a3a5SLinus Walleij			#dma-cells = <2>;
253*b7f8a3a5SLinus Walleij		};
254*b7f8a3a5SLinus Walleij
2556bcad714SAnand Gore		uart0: serial@12000 {
2566bcad714SAnand Gore			compatible = "arm,pl011", "arm,primecell";
2576bcad714SAnand Gore			reg = <0x12000 0x1000>;
25865448139SLinus Walleij			interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
2596bcad714SAnand Gore			clocks = <&uart_clk>, <&uart_clk>;
2606bcad714SAnand Gore			clock-names = "uartclk", "apb_pclk";
2616bcad714SAnand Gore			status = "disabled";
2626bcad714SAnand Gore		};
2636bcad714SAnand Gore	};
2646bcad714SAnand Gore};
265