162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/arm-gic.h>
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci/ {
562306a36Sopenharmony_ci	#address-cells = <2>;
662306a36Sopenharmony_ci	#size-cells = <2>;
762306a36Sopenharmony_ci	model = "Broadcom STB (bcm7445)";
862306a36Sopenharmony_ci	compatible = "brcm,bcm7445", "brcm,brcmstb";
962306a36Sopenharmony_ci	interrupt-parent = <&gic>;
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci	chosen {
1262306a36Sopenharmony_ci		bootargs = "console=ttyS0,115200 earlyprintk";
1362306a36Sopenharmony_ci	};
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci	cpus {
1662306a36Sopenharmony_ci		#address-cells = <1>;
1762306a36Sopenharmony_ci		#size-cells = <0>;
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci		cpu@0 {
2062306a36Sopenharmony_ci			compatible = "brcm,brahma-b15";
2162306a36Sopenharmony_ci			device_type = "cpu";
2262306a36Sopenharmony_ci			enable-method = "brcm,brahma-b15";
2362306a36Sopenharmony_ci			reg = <0>;
2462306a36Sopenharmony_ci		};
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci		cpu@1 {
2762306a36Sopenharmony_ci			compatible = "brcm,brahma-b15";
2862306a36Sopenharmony_ci			device_type = "cpu";
2962306a36Sopenharmony_ci			enable-method = "brcm,brahma-b15";
3062306a36Sopenharmony_ci			reg = <1>;
3162306a36Sopenharmony_ci		};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci		cpu@2 {
3462306a36Sopenharmony_ci			compatible = "brcm,brahma-b15";
3562306a36Sopenharmony_ci			device_type = "cpu";
3662306a36Sopenharmony_ci			enable-method = "brcm,brahma-b15";
3762306a36Sopenharmony_ci			reg = <2>;
3862306a36Sopenharmony_ci		};
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci		cpu@3 {
4162306a36Sopenharmony_ci			compatible = "brcm,brahma-b15";
4262306a36Sopenharmony_ci			device_type = "cpu";
4362306a36Sopenharmony_ci			enable-method = "brcm,brahma-b15";
4462306a36Sopenharmony_ci			reg = <3>;
4562306a36Sopenharmony_ci		};
4662306a36Sopenharmony_ci	};
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	gic: interrupt-controller@ffd00000 {
4962306a36Sopenharmony_ci		compatible = "brcm,brahma-b15-gic", "arm,cortex-a15-gic";
5062306a36Sopenharmony_ci		reg = <0x00 0xffd01000 0x00 0x1000>,
5162306a36Sopenharmony_ci		      <0x00 0xffd02000 0x00 0x2000>,
5262306a36Sopenharmony_ci		      <0x00 0xffd04000 0x00 0x2000>,
5362306a36Sopenharmony_ci		      <0x00 0xffd06000 0x00 0x2000>;
5462306a36Sopenharmony_ci		interrupt-controller;
5562306a36Sopenharmony_ci		#interrupt-cells = <3>;
5662306a36Sopenharmony_ci	};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	timer {
5962306a36Sopenharmony_ci		compatible = "arm,armv7-timer";
6062306a36Sopenharmony_ci		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>,
6162306a36Sopenharmony_ci			     <GIC_PPI 14 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>,
6262306a36Sopenharmony_ci			     <GIC_PPI 11 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>,
6362306a36Sopenharmony_ci			     <GIC_PPI 10 (GIC_CPU_MASK_RAW(15) | IRQ_TYPE_LEVEL_LOW)>;
6462306a36Sopenharmony_ci	};
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci	rdb@f0000000 {
6762306a36Sopenharmony_ci		#address-cells = <1>;
6862306a36Sopenharmony_ci		#size-cells = <1>;
6962306a36Sopenharmony_ci		compatible = "simple-bus";
7062306a36Sopenharmony_ci		ranges = <0 0x00 0xf0000000 0x1000000>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci		serial@40ab00 {
7362306a36Sopenharmony_ci			compatible = "ns16550a";
7462306a36Sopenharmony_ci			reg = <0x40ab00 0x20>;
7562306a36Sopenharmony_ci			reg-shift = <2>;
7662306a36Sopenharmony_ci			reg-io-width = <4>;
7762306a36Sopenharmony_ci			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
7862306a36Sopenharmony_ci			clock-frequency = <81000000>;
7962306a36Sopenharmony_ci		};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci		sun_top_ctrl: syscon@404000 {
8262306a36Sopenharmony_ci			compatible = "brcm,bcm7445-sun-top-ctrl",
8362306a36Sopenharmony_ci				     "syscon";
8462306a36Sopenharmony_ci			reg = <0x404000 0x51c>;
8562306a36Sopenharmony_ci		};
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci		hif_cpubiuctrl: syscon@3e2400 {
8862306a36Sopenharmony_ci			compatible = "brcm,bcm7445-hif-cpubiuctrl",
8962306a36Sopenharmony_ci				     "syscon";
9062306a36Sopenharmony_ci			reg = <0x3e2400 0x5b4>;
9162306a36Sopenharmony_ci		};
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci		hif_continuation: syscon@452000 {
9462306a36Sopenharmony_ci			compatible = "brcm,bcm7445-hif-continuation",
9562306a36Sopenharmony_ci				     "syscon";
9662306a36Sopenharmony_ci			reg = <0x452000 0x100>;
9762306a36Sopenharmony_ci		};
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci		irq0_intc: interrupt-controller@40a780 {
10062306a36Sopenharmony_ci			compatible = "brcm,bcm7120-l2-intc";
10162306a36Sopenharmony_ci			interrupt-parent = <&gic>;
10262306a36Sopenharmony_ci			#interrupt-cells = <1>;
10362306a36Sopenharmony_ci			reg = <0x40a780 0x8>;
10462306a36Sopenharmony_ci			interrupt-controller;
10562306a36Sopenharmony_ci			interrupts = <GIC_SPI 0x45 0x0>,
10662306a36Sopenharmony_ci				     <GIC_SPI 0x43 0x0>;
10762306a36Sopenharmony_ci			brcm,int-map-mask = <0x25c>, <0x7000000>;
10862306a36Sopenharmony_ci			brcm,int-fwd-mask = <0x70000>;
10962306a36Sopenharmony_ci		};
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci		irq0_aon_intc: interrupt-controller@417280 {
11262306a36Sopenharmony_ci			compatible = "brcm,bcm7120-l2-intc";
11362306a36Sopenharmony_ci			reg = <0x417280 0x8>;
11462306a36Sopenharmony_ci			interrupt-parent = <&gic>;
11562306a36Sopenharmony_ci			#interrupt-cells = <1>;
11662306a36Sopenharmony_ci			interrupt-controller;
11762306a36Sopenharmony_ci			interrupts = <GIC_SPI 0x46 0x0>,
11862306a36Sopenharmony_ci				     <GIC_SPI 0x44 0x0>,
11962306a36Sopenharmony_ci				     <GIC_SPI 0x49 0x0>;
12062306a36Sopenharmony_ci			brcm,int-map-mask = <0x1e3 0x18000000 0x100000>;
12162306a36Sopenharmony_ci			brcm,int-fwd-mask = <0x0>;
12262306a36Sopenharmony_ci			brcm,irq-can-wake;
12362306a36Sopenharmony_ci		};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci		hif_intr2_intc: interrupt-controller@3e1000 {
12662306a36Sopenharmony_ci			compatible = "brcm,l2-intc";
12762306a36Sopenharmony_ci			reg = <0x3e1000 0x30>;
12862306a36Sopenharmony_ci			interrupt-controller;
12962306a36Sopenharmony_ci			#interrupt-cells = <1>;
13062306a36Sopenharmony_ci			interrupts = <GIC_SPI 0x20 0x0>;
13162306a36Sopenharmony_ci			interrupt-parent = <&gic>;
13262306a36Sopenharmony_ci			interrupt-names = "hif";
13362306a36Sopenharmony_ci		};
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci                aon_pm_l2_intc: interrupt-controller@410640 {
13662306a36Sopenharmony_ci			compatible = "brcm,l2-intc";
13762306a36Sopenharmony_ci			reg = <0x410640 0x30>;
13862306a36Sopenharmony_ci			interrupt-controller;
13962306a36Sopenharmony_ci			#interrupt-cells = <1>;
14062306a36Sopenharmony_ci			interrupts = <GIC_SPI 0x40 0x0>;
14162306a36Sopenharmony_ci			interrupt-parent = <&gic>;
14262306a36Sopenharmony_ci			brcm,irq-can-wake;
14362306a36Sopenharmony_ci		};
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci		aon-ctrl@410000 {
14662306a36Sopenharmony_ci			compatible = "brcm,brcmstb-aon-ctrl";
14762306a36Sopenharmony_ci			reg = <0x410000 0x200>, <0x410200 0x400>;
14862306a36Sopenharmony_ci			reg-names = "aon-ctrl", "aon-sram";
14962306a36Sopenharmony_ci		};
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci		nand_controller: nand-controller@3e2800 {
15262306a36Sopenharmony_ci			status = "disabled";
15362306a36Sopenharmony_ci			#address-cells = <1>;
15462306a36Sopenharmony_ci			#size-cells = <0>;
15562306a36Sopenharmony_ci			compatible = "brcm,brcmnand-v7.1", "brcm,brcmnand";
15662306a36Sopenharmony_ci			reg-names = "nand", "flash-dma";
15762306a36Sopenharmony_ci			reg = <0x3e2800 0x600>, <0x3e3000 0x2c>;
15862306a36Sopenharmony_ci			interrupt-parent = <&hif_intr2_intc>;
15962306a36Sopenharmony_ci			interrupts = <24>, <4>;
16062306a36Sopenharmony_ci			interrupt-names = "nand_ctlrdy", "flash_dma_done";
16162306a36Sopenharmony_ci		};
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci		sata@45a000 {
16462306a36Sopenharmony_ci			compatible = "brcm,bcm7445-ahci", "brcm,sata3-ahci";
16562306a36Sopenharmony_ci			reg-names = "ahci", "top-ctrl";
16662306a36Sopenharmony_ci			reg = <0x45a000 0xa9c>, <0x458040 0x24>;
16762306a36Sopenharmony_ci			interrupts = <GIC_SPI 30 0>;
16862306a36Sopenharmony_ci			#address-cells = <1>;
16962306a36Sopenharmony_ci			#size-cells = <0>;
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci			sata0: sata-port@0 {
17262306a36Sopenharmony_ci				reg = <0>;
17362306a36Sopenharmony_ci				phys = <&sata_phy0>;
17462306a36Sopenharmony_ci			};
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ci			sata1: sata-port@1 {
17762306a36Sopenharmony_ci				reg = <1>;
17862306a36Sopenharmony_ci				phys = <&sata_phy1>;
17962306a36Sopenharmony_ci			};
18062306a36Sopenharmony_ci		};
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ci		sata_phy: sata-phy@458100 {
18362306a36Sopenharmony_ci			compatible = "brcm,bcm7445-sata-phy", "brcm,phy-sata3";
18462306a36Sopenharmony_ci			reg = <0x458100 0x1f00>;
18562306a36Sopenharmony_ci			reg-names = "phy";
18662306a36Sopenharmony_ci			#address-cells = <0x1>;
18762306a36Sopenharmony_ci			#size-cells = <0x0>;
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci			sata_phy0: sata-phy@0 {
19062306a36Sopenharmony_ci				reg = <0>;
19162306a36Sopenharmony_ci				#phy-cells = <0>;
19262306a36Sopenharmony_ci			};
19362306a36Sopenharmony_ci
19462306a36Sopenharmony_ci			sata_phy1: sata-phy@1 {
19562306a36Sopenharmony_ci				reg = <1>;
19662306a36Sopenharmony_ci				#phy-cells = <0>;
19762306a36Sopenharmony_ci			};
19862306a36Sopenharmony_ci		};
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci		upg_gio: gpio@40a700 {
20162306a36Sopenharmony_ci			compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
20262306a36Sopenharmony_ci			reg = <0x40a700 0x80>;
20362306a36Sopenharmony_ci			#gpio-cells = <2>;
20462306a36Sopenharmony_ci			#interrupt-cells = <2>;
20562306a36Sopenharmony_ci			gpio-controller;
20662306a36Sopenharmony_ci			interrupt-controller;
20762306a36Sopenharmony_ci			interrupt-parent = <&irq0_intc>;
20862306a36Sopenharmony_ci			interrupts = <6>;
20962306a36Sopenharmony_ci			brcm,gpio-bank-widths = <32 32 32 24>;
21062306a36Sopenharmony_ci		};
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci		upg_gio_aon: gpio@4172c0 {
21362306a36Sopenharmony_ci			compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
21462306a36Sopenharmony_ci			reg = <0x4172c0 0x40>;
21562306a36Sopenharmony_ci			#gpio-cells = <2>;
21662306a36Sopenharmony_ci			#interrupt-cells = <2>;
21762306a36Sopenharmony_ci			gpio-controller;
21862306a36Sopenharmony_ci			interrupt-controller;
21962306a36Sopenharmony_ci			interrupts-extended = <&irq0_aon_intc 0x6>,
22062306a36Sopenharmony_ci					      <&aon_pm_l2_intc 0x5>;
22162306a36Sopenharmony_ci			wakeup-source;
22262306a36Sopenharmony_ci			brcm,gpio-bank-widths = <18 4>;
22362306a36Sopenharmony_ci		};
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci	};
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci	memory_controllers@f1100000 {
22862306a36Sopenharmony_ci		compatible = "simple-bus";
22962306a36Sopenharmony_ci		ranges = <0x0 0x0 0xf1100000 0x200000>;
23062306a36Sopenharmony_ci		#address-cells = <1>;
23162306a36Sopenharmony_ci		#size-cells = <1>;
23262306a36Sopenharmony_ci
23362306a36Sopenharmony_ci		memc@0 {
23462306a36Sopenharmony_ci			compatible = "brcm,brcmstb-memc", "simple-bus";
23562306a36Sopenharmony_ci			#address-cells = <1>;
23662306a36Sopenharmony_ci			#size-cells = <1>;
23762306a36Sopenharmony_ci			ranges = <0x0 0x0 0x80000>;
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci			memc-ddr@2000 {
24062306a36Sopenharmony_ci				compatible = "brcm,brcmstb-memc-ddr";
24162306a36Sopenharmony_ci				reg = <0x2000 0x800>;
24262306a36Sopenharmony_ci			};
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci			ddr-phy@6000 {
24562306a36Sopenharmony_ci				compatible = "brcm,brcmstb-ddr-phy-v240.1";
24662306a36Sopenharmony_ci				reg = <0x6000 0x21c>;
24762306a36Sopenharmony_ci				};
24862306a36Sopenharmony_ci
24962306a36Sopenharmony_ci			shimphy@8000 {
25062306a36Sopenharmony_ci				compatible = "brcm,brcmstb-ddr-shimphy-v1.0";
25162306a36Sopenharmony_ci				reg = <0x8000 0xe4>;
25262306a36Sopenharmony_ci			};
25362306a36Sopenharmony_ci		};
25462306a36Sopenharmony_ci
25562306a36Sopenharmony_ci		memc@80000 {
25662306a36Sopenharmony_ci			compatible = "brcm,brcmstb-memc", "simple-bus";
25762306a36Sopenharmony_ci			#address-cells = <1>;
25862306a36Sopenharmony_ci			#size-cells = <1>;
25962306a36Sopenharmony_ci			ranges = <0x0 0x80000 0x80000>;
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ci			memc-ddr@2000 {
26262306a36Sopenharmony_ci				compatible = "brcm,brcmstb-memc-ddr";
26362306a36Sopenharmony_ci				reg = <0x2000 0x800>;
26462306a36Sopenharmony_ci			};
26562306a36Sopenharmony_ci
26662306a36Sopenharmony_ci			ddr-phy@6000 {
26762306a36Sopenharmony_ci				compatible = "brcm,brcmstb-ddr-phy-v240.1";
26862306a36Sopenharmony_ci				reg = <0x6000 0x21c>;
26962306a36Sopenharmony_ci			};
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci			shimphy@8000 {
27262306a36Sopenharmony_ci				compatible = "brcm,brcmstb-ddr-shimphy-v1.0";
27362306a36Sopenharmony_ci				reg = <0x8000 0xe4>;
27462306a36Sopenharmony_ci			};
27562306a36Sopenharmony_ci		};
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci		memc@100000 {
27862306a36Sopenharmony_ci			compatible = "brcm,brcmstb-memc", "simple-bus";
27962306a36Sopenharmony_ci			#address-cells = <1>;
28062306a36Sopenharmony_ci			#size-cells = <1>;
28162306a36Sopenharmony_ci			ranges = <0x0 0x100000 0x80000>;
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ci			memc-ddr@2000 {
28462306a36Sopenharmony_ci				compatible = "brcm,brcmstb-memc-ddr";
28562306a36Sopenharmony_ci				reg = <0x2000 0x800>;
28662306a36Sopenharmony_ci			};
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci			ddr-phy@6000 {
28962306a36Sopenharmony_ci				compatible = "brcm,brcmstb-ddr-phy-v240.1";
29062306a36Sopenharmony_ci				reg = <0x6000 0x21c>;
29162306a36Sopenharmony_ci			};
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ci			shimphy@8000 {
29462306a36Sopenharmony_ci				compatible = "brcm,brcmstb-ddr-shimphy-v1.0";
29562306a36Sopenharmony_ci				reg = <0x8000 0xe4>;
29662306a36Sopenharmony_ci			};
29762306a36Sopenharmony_ci		};
29862306a36Sopenharmony_ci	};
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ci	sram@ffe00000 {
30162306a36Sopenharmony_ci		compatible = "brcm,boot-sram", "mmio-sram";
30262306a36Sopenharmony_ci		reg = <0x0 0xffe00000 0x0 0x10000>;
30362306a36Sopenharmony_ci	};
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ci	smpboot {
30662306a36Sopenharmony_ci		compatible = "brcm,brcmstb-smpboot";
30762306a36Sopenharmony_ci		syscon-cpu = <&hif_cpubiuctrl 0x88 0x178>;
30862306a36Sopenharmony_ci		syscon-cont = <&hif_continuation>;
30962306a36Sopenharmony_ci	};
31062306a36Sopenharmony_ci
31162306a36Sopenharmony_ci	reboot {
31262306a36Sopenharmony_ci		compatible = "brcm,brcmstb-reboot";
31362306a36Sopenharmony_ci		syscon = <&sun_top_ctrl 0x304 0x308>;
31462306a36Sopenharmony_ci	};
31562306a36Sopenharmony_ci};
316