162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci// Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci/ {
762306a36Sopenharmony_ci	#address-cells = <1>;
862306a36Sopenharmony_ci	#size-cells = <1>;
962306a36Sopenharmony_ci	model = "Marvell Orion5x SoC";
1062306a36Sopenharmony_ci	compatible = "marvell,orion5x";
1162306a36Sopenharmony_ci	interrupt-parent = <&intc>;
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci	aliases {
1462306a36Sopenharmony_ci		gpio0 = &gpio0;
1562306a36Sopenharmony_ci	};
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci	soc {
1862306a36Sopenharmony_ci		#address-cells = <2>;
1962306a36Sopenharmony_ci		#size-cells = <1>;
2062306a36Sopenharmony_ci		controller = <&mbusc>;
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci		devbus_bootcs: devbus-bootcs {
2362306a36Sopenharmony_ci			compatible = "marvell,orion-devbus";
2462306a36Sopenharmony_ci			reg = <MBUS_ID(0xf0, 0x01) 0x1046C 0x4>;
2562306a36Sopenharmony_ci			ranges = <0 MBUS_ID(0x01, 0x0f) 0 0xffffffff>;
2662306a36Sopenharmony_ci			#address-cells = <1>;
2762306a36Sopenharmony_ci			#size-cells = <1>;
2862306a36Sopenharmony_ci			clocks = <&core_clk 0>;
2962306a36Sopenharmony_ci			status = "disabled";
3062306a36Sopenharmony_ci		};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci		devbus_cs0: devbus-cs0 {
3362306a36Sopenharmony_ci			compatible = "marvell,orion-devbus";
3462306a36Sopenharmony_ci			reg = <MBUS_ID(0xf0, 0x01) 0x1045C 0x4>;
3562306a36Sopenharmony_ci			ranges = <0 MBUS_ID(0x01, 0x1e) 0 0xffffffff>;
3662306a36Sopenharmony_ci			#address-cells = <1>;
3762306a36Sopenharmony_ci			#size-cells = <1>;
3862306a36Sopenharmony_ci			clocks = <&core_clk 0>;
3962306a36Sopenharmony_ci			status = "disabled";
4062306a36Sopenharmony_ci		};
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci		devbus_cs1: devbus-cs1 {
4362306a36Sopenharmony_ci			compatible = "marvell,orion-devbus";
4462306a36Sopenharmony_ci			reg = <MBUS_ID(0xf0, 0x01) 0x10460 0x4>;
4562306a36Sopenharmony_ci			ranges = <0 MBUS_ID(0x01, 0x1d) 0 0xffffffff>;
4662306a36Sopenharmony_ci			#address-cells = <1>;
4762306a36Sopenharmony_ci			#size-cells = <1>;
4862306a36Sopenharmony_ci			clocks = <&core_clk 0>;
4962306a36Sopenharmony_ci			status = "disabled";
5062306a36Sopenharmony_ci		};
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci		devbus_cs2: devbus-cs2 {
5362306a36Sopenharmony_ci			compatible = "marvell,orion-devbus";
5462306a36Sopenharmony_ci			reg = <MBUS_ID(0xf0, 0x01) 0x10464 0x4>;
5562306a36Sopenharmony_ci			ranges = <0 MBUS_ID(0x01, 0x1b) 0 0xffffffff>;
5662306a36Sopenharmony_ci			#address-cells = <1>;
5762306a36Sopenharmony_ci			#size-cells = <1>;
5862306a36Sopenharmony_ci			clocks = <&core_clk 0>;
5962306a36Sopenharmony_ci			status = "disabled";
6062306a36Sopenharmony_ci		};
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci		internal-regs {
6362306a36Sopenharmony_ci			compatible = "simple-bus";
6462306a36Sopenharmony_ci			#address-cells = <1>;
6562306a36Sopenharmony_ci			#size-cells = <1>;
6662306a36Sopenharmony_ci			ranges = <0 MBUS_ID(0xf0, 0x01) 0 0x100000>;
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci			gpio0: gpio@10100 {
6962306a36Sopenharmony_ci				compatible = "marvell,orion-gpio";
7062306a36Sopenharmony_ci				#gpio-cells = <2>;
7162306a36Sopenharmony_ci				gpio-controller;
7262306a36Sopenharmony_ci				reg = <0x10100 0x40>;
7362306a36Sopenharmony_ci				ngpios = <32>;
7462306a36Sopenharmony_ci				interrupt-controller;
7562306a36Sopenharmony_ci				#interrupt-cells = <2>;
7662306a36Sopenharmony_ci				interrupts = <6>, <7>, <8>, <9>;
7762306a36Sopenharmony_ci			};
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci			spi: spi@10600 {
8062306a36Sopenharmony_ci				compatible = "marvell,orion-spi";
8162306a36Sopenharmony_ci				#address-cells = <1>;
8262306a36Sopenharmony_ci				#size-cells = <0>;
8362306a36Sopenharmony_ci				cell-index = <0>;
8462306a36Sopenharmony_ci				reg = <0x10600 0x28>;
8562306a36Sopenharmony_ci				status = "disabled";
8662306a36Sopenharmony_ci			};
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci			i2c: i2c@11000 {
8962306a36Sopenharmony_ci				compatible = "marvell,mv64xxx-i2c";
9062306a36Sopenharmony_ci				reg = <0x11000 0x20>;
9162306a36Sopenharmony_ci				#address-cells = <1>;
9262306a36Sopenharmony_ci				#size-cells = <0>;
9362306a36Sopenharmony_ci				interrupts = <5>;
9462306a36Sopenharmony_ci				clocks = <&core_clk 0>;
9562306a36Sopenharmony_ci				status = "disabled";
9662306a36Sopenharmony_ci			};
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ci			uart0: serial@12000 {
9962306a36Sopenharmony_ci				compatible = "ns16550a";
10062306a36Sopenharmony_ci				reg = <0x12000 0x100>;
10162306a36Sopenharmony_ci				reg-shift = <2>;
10262306a36Sopenharmony_ci				interrupts = <3>;
10362306a36Sopenharmony_ci				clocks = <&core_clk 0>;
10462306a36Sopenharmony_ci				status = "disabled";
10562306a36Sopenharmony_ci			};
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci			uart1: serial@12100 {
10862306a36Sopenharmony_ci				compatible = "ns16550a";
10962306a36Sopenharmony_ci				reg = <0x12100 0x100>;
11062306a36Sopenharmony_ci				reg-shift = <2>;
11162306a36Sopenharmony_ci				interrupts = <4>;
11262306a36Sopenharmony_ci				clocks = <&core_clk 0>;
11362306a36Sopenharmony_ci				status = "disabled";
11462306a36Sopenharmony_ci			};
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci			bridge_intc: bridge-interrupt-ctrl@20110 {
11762306a36Sopenharmony_ci				compatible = "marvell,orion-bridge-intc";
11862306a36Sopenharmony_ci				interrupt-controller;
11962306a36Sopenharmony_ci				#interrupt-cells = <1>;
12062306a36Sopenharmony_ci				reg = <0x20110 0x8>;
12162306a36Sopenharmony_ci				interrupts = <0>;
12262306a36Sopenharmony_ci				marvell,#interrupts = <4>;
12362306a36Sopenharmony_ci			};
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci			intc: interrupt-controller@20200 {
12662306a36Sopenharmony_ci				compatible = "marvell,orion-intc";
12762306a36Sopenharmony_ci				interrupt-controller;
12862306a36Sopenharmony_ci				#interrupt-cells = <1>;
12962306a36Sopenharmony_ci				reg = <0x20200 0x08>;
13062306a36Sopenharmony_ci			};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci			timer: timer@20300 {
13362306a36Sopenharmony_ci				compatible = "marvell,orion-timer";
13462306a36Sopenharmony_ci				reg = <0x20300 0x20>;
13562306a36Sopenharmony_ci				interrupt-parent = <&bridge_intc>;
13662306a36Sopenharmony_ci				interrupts = <1>, <2>;
13762306a36Sopenharmony_ci				clocks = <&core_clk 0>;
13862306a36Sopenharmony_ci			};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci			wdt: wdt@20300 {
14162306a36Sopenharmony_ci				compatible = "marvell,orion-wdt";
14262306a36Sopenharmony_ci				reg = <0x20300 0x28>, <0x20108 0x4>;
14362306a36Sopenharmony_ci				interrupt-parent = <&bridge_intc>;
14462306a36Sopenharmony_ci				interrupts = <3>;
14562306a36Sopenharmony_ci				clocks = <&core_clk 0>;
14662306a36Sopenharmony_ci				status = "okay";
14762306a36Sopenharmony_ci			};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci			ehci0: ehci@50000 {
15062306a36Sopenharmony_ci				compatible = "marvell,orion-ehci";
15162306a36Sopenharmony_ci				reg = <0x50000 0x1000>;
15262306a36Sopenharmony_ci				interrupts = <17>;
15362306a36Sopenharmony_ci				status = "disabled";
15462306a36Sopenharmony_ci			};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci			xor: dma-controller@60900 {
15762306a36Sopenharmony_ci				compatible = "marvell,orion-xor";
15862306a36Sopenharmony_ci				reg = <0x60900 0x100
15962306a36Sopenharmony_ci				       0x60b00 0x100>;
16062306a36Sopenharmony_ci				status = "okay";
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci				xor00 {
16362306a36Sopenharmony_ci				      interrupts = <30>;
16462306a36Sopenharmony_ci				      dmacap,memcpy;
16562306a36Sopenharmony_ci				      dmacap,xor;
16662306a36Sopenharmony_ci				};
16762306a36Sopenharmony_ci				xor01 {
16862306a36Sopenharmony_ci				      interrupts = <31>;
16962306a36Sopenharmony_ci				      dmacap,memcpy;
17062306a36Sopenharmony_ci				      dmacap,xor;
17162306a36Sopenharmony_ci				      dmacap,memset;
17262306a36Sopenharmony_ci				};
17362306a36Sopenharmony_ci			};
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci			eth: ethernet-controller@72000 {
17662306a36Sopenharmony_ci				compatible = "marvell,orion-eth";
17762306a36Sopenharmony_ci				#address-cells = <1>;
17862306a36Sopenharmony_ci				#size-cells = <0>;
17962306a36Sopenharmony_ci				reg = <0x72000 0x4000>;
18062306a36Sopenharmony_ci				marvell,tx-checksum-limit = <1600>;
18162306a36Sopenharmony_ci				status = "disabled";
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci				ethport: ethernet-port@0 {
18462306a36Sopenharmony_ci					compatible = "marvell,orion-eth-port";
18562306a36Sopenharmony_ci					reg = <0>;
18662306a36Sopenharmony_ci					interrupts = <21>;
18762306a36Sopenharmony_ci					/* overwrite MAC address in bootloader */
18862306a36Sopenharmony_ci					local-mac-address = [00 00 00 00 00 00];
18962306a36Sopenharmony_ci					/* set phy-handle property in board file */
19062306a36Sopenharmony_ci				};
19162306a36Sopenharmony_ci			};
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci			mdio: mdio-bus@72004 {
19462306a36Sopenharmony_ci				compatible = "marvell,orion-mdio";
19562306a36Sopenharmony_ci				#address-cells = <1>;
19662306a36Sopenharmony_ci				#size-cells = <0>;
19762306a36Sopenharmony_ci				reg = <0x72004 0x84>;
19862306a36Sopenharmony_ci				interrupts = <22>;
19962306a36Sopenharmony_ci				status = "disabled";
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ci				/* add phy nodes in board file */
20262306a36Sopenharmony_ci			};
20362306a36Sopenharmony_ci
20462306a36Sopenharmony_ci			sata: sata@80000 {
20562306a36Sopenharmony_ci				compatible = "marvell,orion-sata";
20662306a36Sopenharmony_ci				reg = <0x80000 0x5000>;
20762306a36Sopenharmony_ci				interrupts = <29>;
20862306a36Sopenharmony_ci				status = "disabled";
20962306a36Sopenharmony_ci			};
21062306a36Sopenharmony_ci
21162306a36Sopenharmony_ci			cesa: crypto@90000 {
21262306a36Sopenharmony_ci				compatible = "marvell,orion-crypto";
21362306a36Sopenharmony_ci				reg = <0x90000 0x10000>;
21462306a36Sopenharmony_ci				reg-names = "regs";
21562306a36Sopenharmony_ci				interrupts = <28>;
21662306a36Sopenharmony_ci				marvell,crypto-srams = <&crypto_sram>;
21762306a36Sopenharmony_ci				marvell,crypto-sram-size = <0x800>;
21862306a36Sopenharmony_ci				status = "okay";
21962306a36Sopenharmony_ci			};
22062306a36Sopenharmony_ci
22162306a36Sopenharmony_ci			ehci1: ehci@a0000 {
22262306a36Sopenharmony_ci				compatible = "marvell,orion-ehci";
22362306a36Sopenharmony_ci				reg = <0xa0000 0x1000>;
22462306a36Sopenharmony_ci				interrupts = <12>;
22562306a36Sopenharmony_ci				status = "disabled";
22662306a36Sopenharmony_ci			};
22762306a36Sopenharmony_ci		};
22862306a36Sopenharmony_ci
22962306a36Sopenharmony_ci		crypto_sram: sa-sram {
23062306a36Sopenharmony_ci			compatible = "mmio-sram";
23162306a36Sopenharmony_ci			reg = <MBUS_ID(0x09, 0x00) 0x0 0x800>;
23262306a36Sopenharmony_ci			#address-cells = <1>;
23362306a36Sopenharmony_ci			#size-cells = <1>;
23462306a36Sopenharmony_ci		};
23562306a36Sopenharmony_ci	};
23662306a36Sopenharmony_ci};
237