xref: /linux/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi (revision 3c5d127fb5aa96e89875fcc92182bc1eacfef3af)
11ba56aebSWilliam Zhang// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
21ba56aebSWilliam Zhang/*
31ba56aebSWilliam Zhang * Copyright 2022 Broadcom Ltd.
41ba56aebSWilliam Zhang */
51ba56aebSWilliam Zhang
61ba56aebSWilliam Zhang#include <dt-bindings/interrupt-controller/irq.h>
71ba56aebSWilliam Zhang#include <dt-bindings/interrupt-controller/arm-gic.h>
81ba56aebSWilliam Zhang
91ba56aebSWilliam Zhang/ {
101ba56aebSWilliam Zhang	compatible = "brcm,bcm4912", "brcm,bcmbca";
111ba56aebSWilliam Zhang	#address-cells = <2>;
121ba56aebSWilliam Zhang	#size-cells = <2>;
131ba56aebSWilliam Zhang
141ba56aebSWilliam Zhang	interrupt-parent = <&gic>;
151ba56aebSWilliam Zhang
161ba56aebSWilliam Zhang	cpus {
171ba56aebSWilliam Zhang		#address-cells = <2>;
181ba56aebSWilliam Zhang		#size-cells = <0>;
191ba56aebSWilliam Zhang
201ba56aebSWilliam Zhang		B53_0: cpu@0 {
211ba56aebSWilliam Zhang			compatible = "brcm,brahma-b53";
221ba56aebSWilliam Zhang			device_type = "cpu";
231ba56aebSWilliam Zhang			reg = <0x0 0x0>;
241ba56aebSWilliam Zhang			next-level-cache = <&L2_0>;
251ba56aebSWilliam Zhang			enable-method = "psci";
261ba56aebSWilliam Zhang		};
271ba56aebSWilliam Zhang
281ba56aebSWilliam Zhang		B53_1: cpu@1 {
291ba56aebSWilliam Zhang			compatible = "brcm,brahma-b53";
301ba56aebSWilliam Zhang			device_type = "cpu";
311ba56aebSWilliam Zhang			reg = <0x0 0x1>;
321ba56aebSWilliam Zhang			next-level-cache = <&L2_0>;
331ba56aebSWilliam Zhang			enable-method = "psci";
341ba56aebSWilliam Zhang		};
351ba56aebSWilliam Zhang
361ba56aebSWilliam Zhang		B53_2: cpu@2 {
371ba56aebSWilliam Zhang			compatible = "brcm,brahma-b53";
381ba56aebSWilliam Zhang			device_type = "cpu";
391ba56aebSWilliam Zhang			reg = <0x0 0x2>;
401ba56aebSWilliam Zhang			next-level-cache = <&L2_0>;
411ba56aebSWilliam Zhang			enable-method = "psci";
421ba56aebSWilliam Zhang		};
431ba56aebSWilliam Zhang
441ba56aebSWilliam Zhang		B53_3: cpu@3 {
451ba56aebSWilliam Zhang			compatible = "brcm,brahma-b53";
461ba56aebSWilliam Zhang			device_type = "cpu";
471ba56aebSWilliam Zhang			reg = <0x0 0x3>;
481ba56aebSWilliam Zhang			next-level-cache = <&L2_0>;
491ba56aebSWilliam Zhang			enable-method = "psci";
501ba56aebSWilliam Zhang		};
511ba56aebSWilliam Zhang
521ba56aebSWilliam Zhang		L2_0: l2-cache0 {
531ba56aebSWilliam Zhang			compatible = "cache";
54e567e58dSPierre Gondois			cache-level = <2>;
550709e55eSKrzysztof Kozlowski			cache-unified;
561ba56aebSWilliam Zhang		};
571ba56aebSWilliam Zhang	};
581ba56aebSWilliam Zhang
591ba56aebSWilliam Zhang	timer {
601ba56aebSWilliam Zhang		compatible = "arm,armv8-timer";
611ba56aebSWilliam Zhang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
621ba56aebSWilliam Zhang			<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
631ba56aebSWilliam Zhang			<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
641ba56aebSWilliam Zhang			<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
651ba56aebSWilliam Zhang	};
661ba56aebSWilliam Zhang
671ba56aebSWilliam Zhang	pmu: pmu {
681ba56aebSWilliam Zhang		compatible = "arm,cortex-a53-pmu";
691ba56aebSWilliam Zhang		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
701ba56aebSWilliam Zhang			<GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
711ba56aebSWilliam Zhang			<GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
721ba56aebSWilliam Zhang			<GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
731ba56aebSWilliam Zhang		interrupt-affinity = <&B53_0>, <&B53_1>,
741ba56aebSWilliam Zhang			<&B53_2>, <&B53_3>;
751ba56aebSWilliam Zhang	};
761ba56aebSWilliam Zhang
771ba56aebSWilliam Zhang	clocks: clocks {
781ba56aebSWilliam Zhang		periph_clk: periph-clk {
791ba56aebSWilliam Zhang			compatible = "fixed-clock";
801ba56aebSWilliam Zhang			#clock-cells = <0>;
811ba56aebSWilliam Zhang			clock-frequency = <200000000>;
821ba56aebSWilliam Zhang		};
83f5d83b71SWilliam Zhang
841ba56aebSWilliam Zhang		uart_clk: uart-clk {
851ba56aebSWilliam Zhang			compatible = "fixed-factor-clock";
861ba56aebSWilliam Zhang			#clock-cells = <0>;
871ba56aebSWilliam Zhang			clocks = <&periph_clk>;
881ba56aebSWilliam Zhang			clock-div = <4>;
891ba56aebSWilliam Zhang			clock-mult = <1>;
901ba56aebSWilliam Zhang		};
91f5d83b71SWilliam Zhang
92f5d83b71SWilliam Zhang		hsspi_pll: hsspi-pll {
93f5d83b71SWilliam Zhang			compatible = "fixed-clock";
94f5d83b71SWilliam Zhang			#clock-cells = <0>;
95f5d83b71SWilliam Zhang			clock-frequency = <200000000>;
96f5d83b71SWilliam Zhang		};
971ba56aebSWilliam Zhang	};
981ba56aebSWilliam Zhang
991ba56aebSWilliam Zhang	psci {
1001ba56aebSWilliam Zhang		compatible = "arm,psci-0.2";
1011ba56aebSWilliam Zhang		method = "smc";
1021ba56aebSWilliam Zhang	};
1031ba56aebSWilliam Zhang
1041ba56aebSWilliam Zhang	axi@81000000 {
1051ba56aebSWilliam Zhang		compatible = "simple-bus";
1061ba56aebSWilliam Zhang		#address-cells = <1>;
1071ba56aebSWilliam Zhang		#size-cells = <1>;
1081ba56aebSWilliam Zhang		ranges = <0x0 0x0 0x81000000 0x8000>;
1091ba56aebSWilliam Zhang
1101ba56aebSWilliam Zhang		gic: interrupt-controller@1000 {
1111ba56aebSWilliam Zhang			compatible = "arm,gic-400";
1121ba56aebSWilliam Zhang			#interrupt-cells = <3>;
1131ba56aebSWilliam Zhang			interrupt-controller;
1141ba56aebSWilliam Zhang			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1151ba56aebSWilliam Zhang			reg = <0x1000 0x1000>,
1161ba56aebSWilliam Zhang				<0x2000 0x2000>,
1171ba56aebSWilliam Zhang				<0x4000 0x2000>,
1181ba56aebSWilliam Zhang				<0x6000 0x2000>;
1191ba56aebSWilliam Zhang		};
1201ba56aebSWilliam Zhang	};
1211ba56aebSWilliam Zhang
1221ba56aebSWilliam Zhang	bus@ff800000 {
1231ba56aebSWilliam Zhang		compatible = "simple-bus";
1241ba56aebSWilliam Zhang		#address-cells = <1>;
1251ba56aebSWilliam Zhang		#size-cells = <1>;
1261ba56aebSWilliam Zhang		ranges = <0x0 0x0 0xff800000 0x800000>;
1271ba56aebSWilliam Zhang
128f5d83b71SWilliam Zhang		hsspi: spi@1000 {
129f5d83b71SWilliam Zhang			#address-cells = <1>;
130f5d83b71SWilliam Zhang			#size-cells = <0>;
131f5d83b71SWilliam Zhang			compatible = "brcm,bcm4912-hsspi", "brcm,bcmbca-hsspi-v1.1";
132f5d83b71SWilliam Zhang			reg = <0x1000 0x600>, <0x2610 0x4>;
133f5d83b71SWilliam Zhang			reg-names = "hsspi", "spim-ctrl";
134f5d83b71SWilliam Zhang			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
135f5d83b71SWilliam Zhang			clocks = <&hsspi_pll &hsspi_pll>;
136f5d83b71SWilliam Zhang			clock-names = "hsspi", "pll";
137f5d83b71SWilliam Zhang			num-cs = <8>;
138f5d83b71SWilliam Zhang			status = "disabled";
139f5d83b71SWilliam Zhang		};
140f5d83b71SWilliam Zhang
141*5319667cSWilliam Zhang		nand_controller: nand-controller@1800 {
142*5319667cSWilliam Zhang			#address-cells = <1>;
143*5319667cSWilliam Zhang			#size-cells = <0>;
144*5319667cSWilliam Zhang			compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
145*5319667cSWilliam Zhang			reg = <0x1800 0x600>, <0x2000 0x10>;
146*5319667cSWilliam Zhang			reg-names = "nand", "nand-int-base";
147*5319667cSWilliam Zhang			status = "disabled";
148*5319667cSWilliam Zhang
149*5319667cSWilliam Zhang			nandcs: nand@0 {
150*5319667cSWilliam Zhang				compatible = "brcm,nandcs";
151*5319667cSWilliam Zhang				reg = <0>;
152*5319667cSWilliam Zhang			};
153*5319667cSWilliam Zhang		};
154*5319667cSWilliam Zhang
1551ba56aebSWilliam Zhang		uart0: serial@12000 {
1561ba56aebSWilliam Zhang			compatible = "arm,pl011", "arm,primecell";
1571ba56aebSWilliam Zhang			reg = <0x12000 0x1000>;
1581ba56aebSWilliam Zhang			interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
1591ba56aebSWilliam Zhang			clocks = <&uart_clk>, <&uart_clk>;
1601ba56aebSWilliam Zhang			clock-names = "uartclk", "apb_pclk";
1611ba56aebSWilliam Zhang			status = "disabled";
1621ba56aebSWilliam Zhang		};
1631ba56aebSWilliam Zhang	};
1641ba56aebSWilliam Zhang};
165