xref: /openbmc/linux/arch/arm64/boot/dts/marvell/armada-8040-db.dts (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
14e6a62b6SGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2ec03445cSThomas Petazzoni/*
3ec03445cSThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd.
4ec03445cSThomas Petazzoni *
5ec03445cSThomas Petazzoni * Device Tree file for Marvell Armada 8040 Development board platform
6ec03445cSThomas Petazzoni */
7ec03445cSThomas Petazzoni
80ea62502SGrzegorz Jaszczyk#include <dt-bindings/gpio/gpio.h>
9ec03445cSThomas Petazzoni#include "armada-8040.dtsi"
10ec03445cSThomas Petazzoni
11ec03445cSThomas Petazzoni/ {
12ec03445cSThomas Petazzoni	model = "Marvell Armada 8040 DB board";
13ec03445cSThomas Petazzoni	compatible = "marvell,armada8040-db", "marvell,armada8040",
14ec03445cSThomas Petazzoni		     "marvell,armada-ap806-quad", "marvell,armada-ap806";
15ec03445cSThomas Petazzoni
16ec03445cSThomas Petazzoni	chosen {
17ec03445cSThomas Petazzoni		stdout-path = "serial0:115200n8";
18ec03445cSThomas Petazzoni	};
19ec03445cSThomas Petazzoni
20d8bcaabeSRob Herring	memory@0 {
21ec03445cSThomas Petazzoni		device_type = "memory";
22ec03445cSThomas Petazzoni		reg = <0x0 0x0 0x0 0x80000000>;
23ec03445cSThomas Petazzoni	};
240ea62502SGrzegorz Jaszczyk
25474c5885SYan Markman	aliases {
26474c5885SYan Markman		ethernet0 = &cp0_eth0;
27474c5885SYan Markman		ethernet1 = &cp0_eth2;
28474c5885SYan Markman		ethernet2 = &cp1_eth0;
29474c5885SYan Markman		ethernet3 = &cp1_eth1;
30d8cc5cf0SKonstantin Porotchkin		i2c1 = &cp0_i2c0;
31d8cc5cf0SKonstantin Porotchkin		i2c2 = &cp1_i2c0;
32474c5885SYan Markman	};
33474c5885SYan Markman
3491f1be92SThomas Petazzoni	cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus {
350ea62502SGrzegorz Jaszczyk		compatible = "regulator-fixed";
3691f1be92SThomas Petazzoni		regulator-name = "cp0-usb3h0-vbus";
370ea62502SGrzegorz Jaszczyk		regulator-min-microvolt = <5000000>;
380ea62502SGrzegorz Jaszczyk		regulator-max-microvolt = <5000000>;
390ea62502SGrzegorz Jaszczyk		enable-active-high;
400ea62502SGrzegorz Jaszczyk		gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
410ea62502SGrzegorz Jaszczyk	};
420ea62502SGrzegorz Jaszczyk
4391f1be92SThomas Petazzoni	cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus {
440ea62502SGrzegorz Jaszczyk		compatible = "regulator-fixed";
4591f1be92SThomas Petazzoni		regulator-name = "cp0-usb3h1-vbus";
460ea62502SGrzegorz Jaszczyk		regulator-min-microvolt = <5000000>;
470ea62502SGrzegorz Jaszczyk		regulator-max-microvolt = <5000000>;
480ea62502SGrzegorz Jaszczyk		enable-active-high;
490ea62502SGrzegorz Jaszczyk		gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
500ea62502SGrzegorz Jaszczyk	};
510ea62502SGrzegorz Jaszczyk
5291f1be92SThomas Petazzoni	cp0_usb3_0_phy: cp0-usb3-0-phy {
530ea62502SGrzegorz Jaszczyk		compatible = "usb-nop-xceiv";
5491f1be92SThomas Petazzoni		vcc-supply = <&cp0_reg_usb3_0_vbus>;
550ea62502SGrzegorz Jaszczyk	};
560ea62502SGrzegorz Jaszczyk
5791f1be92SThomas Petazzoni	cp1_reg_usb3_0_vbus: cp1-usb3-0-vbus {
580ea62502SGrzegorz Jaszczyk		compatible = "regulator-fixed";
5991f1be92SThomas Petazzoni		regulator-name = "cp1-usb3h0-vbus";
600ea62502SGrzegorz Jaszczyk		regulator-min-microvolt = <5000000>;
610ea62502SGrzegorz Jaszczyk		regulator-max-microvolt = <5000000>;
620ea62502SGrzegorz Jaszczyk		enable-active-high;
630ea62502SGrzegorz Jaszczyk		gpio = <&expander1 0 GPIO_ACTIVE_HIGH>;
640ea62502SGrzegorz Jaszczyk	};
650ea62502SGrzegorz Jaszczyk
6691f1be92SThomas Petazzoni	cp1_usb3_0_phy: cp1-usb3-0-phy {
670ea62502SGrzegorz Jaszczyk		compatible = "usb-nop-xceiv";
6891f1be92SThomas Petazzoni		vcc-supply = <&cp1_reg_usb3_0_vbus>;
690ea62502SGrzegorz Jaszczyk	};
70ec03445cSThomas Petazzoni};
71ec03445cSThomas Petazzoni
72ec03445cSThomas Petazzoni&spi0 {
73ec03445cSThomas Petazzoni	status = "okay";
74ec03445cSThomas Petazzoni
75*2f00bb4aSKrzysztof Kozlowski	flash@0 {
76ec03445cSThomas Petazzoni		compatible = "jedec,spi-nor";
77ec03445cSThomas Petazzoni		reg = <0>;
78ec03445cSThomas Petazzoni		spi-max-frequency = <10000000>;
79ec03445cSThomas Petazzoni
80ec03445cSThomas Petazzoni		partitions {
81ec03445cSThomas Petazzoni			compatible = "fixed-partitions";
82ec03445cSThomas Petazzoni			#address-cells = <1>;
83ec03445cSThomas Petazzoni			#size-cells = <1>;
84ec03445cSThomas Petazzoni
85ec03445cSThomas Petazzoni			partition@0 {
86ec03445cSThomas Petazzoni				label = "U-Boot";
87ec03445cSThomas Petazzoni				reg = <0 0x200000>;
88ec03445cSThomas Petazzoni			};
89ec03445cSThomas Petazzoni			partition@400000 {
90ec03445cSThomas Petazzoni				label = "Filesystem";
91ec03445cSThomas Petazzoni				reg = <0x200000 0xce0000>;
92ec03445cSThomas Petazzoni			};
93ec03445cSThomas Petazzoni		};
94ec03445cSThomas Petazzoni	};
95ec03445cSThomas Petazzoni};
96ec03445cSThomas Petazzoni
97ec03445cSThomas Petazzoni/* Accessible over the mini-USB CON9 connector on the main board */
98ec03445cSThomas Petazzoni&uart0 {
99ec03445cSThomas Petazzoni	status = "okay";
1009e83bbdbSThomas Petazzoni	pinctrl-0 = <&uart0_pins>;
1019e83bbdbSThomas Petazzoni	pinctrl-names = "default";
102ec03445cSThomas Petazzoni};
103ec03445cSThomas Petazzoni
10430571678SThomas Petazzoni/* CON6 on CP0 expansion */
10591f1be92SThomas Petazzoni&cp0_pcie0 {
106ce55522cSMiquel Raynal	phys = <&cp0_comphy0 0>;
107ce55522cSMiquel Raynal	phy-names = "cp0-pcie0-x1-phy";
10830571678SThomas Petazzoni	status = "okay";
10930571678SThomas Petazzoni};
110ec03445cSThomas Petazzoni
111ec03445cSThomas Petazzoni/* CON5 on CP0 expansion */
11291f1be92SThomas Petazzoni&cp0_pcie2 {
113ce55522cSMiquel Raynal	phys = <&cp0_comphy5 2>;
114ce55522cSMiquel Raynal	phy-names = "cp0-pcie2-x1-phy";
115ec03445cSThomas Petazzoni	status = "okay";
116ec03445cSThomas Petazzoni};
117ec03445cSThomas Petazzoni
11891f1be92SThomas Petazzoni&cp0_i2c0 {
119ec03445cSThomas Petazzoni	status = "okay";
120ec03445cSThomas Petazzoni	clock-frequency = <100000>;
1210ea62502SGrzegorz Jaszczyk
1220ea62502SGrzegorz Jaszczyk	/* U31 */
1230ea62502SGrzegorz Jaszczyk	expander0: pca9555@21 {
1240ea62502SGrzegorz Jaszczyk		compatible = "nxp,pca9555";
1250ea62502SGrzegorz Jaszczyk		pinctrl-names = "default";
1260ea62502SGrzegorz Jaszczyk		gpio-controller;
1270ea62502SGrzegorz Jaszczyk		#gpio-cells = <2>;
1280ea62502SGrzegorz Jaszczyk		reg = <0x21>;
1290ea62502SGrzegorz Jaszczyk	};
1300ea62502SGrzegorz Jaszczyk
1310ea62502SGrzegorz Jaszczyk	/* U25 */
1320ea62502SGrzegorz Jaszczyk	expander1: pca9555@25 {
1330ea62502SGrzegorz Jaszczyk		compatible = "nxp,pca9555";
1340ea62502SGrzegorz Jaszczyk		pinctrl-names = "default";
1350ea62502SGrzegorz Jaszczyk		gpio-controller;
1360ea62502SGrzegorz Jaszczyk		#gpio-cells = <2>;
1370ea62502SGrzegorz Jaszczyk		reg = <0x25>;
1380ea62502SGrzegorz Jaszczyk	};
1390ea62502SGrzegorz Jaszczyk
140ec03445cSThomas Petazzoni};
141ec03445cSThomas Petazzoni
142ec03445cSThomas Petazzoni/* CON4 on CP0 expansion */
14391f1be92SThomas Petazzoni&cp0_sata0 {
144ec03445cSThomas Petazzoni	status = "okay";
145d04abe99SMiquel Raynal
146d04abe99SMiquel Raynal	sata-port@0 {
147d04abe99SMiquel Raynal		phys = <&cp0_comphy1 0>;
148d04abe99SMiquel Raynal		phy-names = "cp0-sata0-0-phy";
149d04abe99SMiquel Raynal	};
150d04abe99SMiquel Raynal	sata-port@1 {
151d04abe99SMiquel Raynal		phys = <&cp0_comphy3 1>;
152d04abe99SMiquel Raynal		phy-names = "cp0-sata0-1-phy";
153d04abe99SMiquel Raynal	};
154ec03445cSThomas Petazzoni};
155ec03445cSThomas Petazzoni
156ec03445cSThomas Petazzoni/* CON9 on CP0 expansion */
15799fa8ac5SKonstantin Porotchkin&cp0_utmi {
15899fa8ac5SKonstantin Porotchkin	status = "okay";
15999fa8ac5SKonstantin Porotchkin};
16099fa8ac5SKonstantin Porotchkin
16191f1be92SThomas Petazzoni&cp0_usb3_0 {
16291f1be92SThomas Petazzoni	usb-phy = <&cp0_usb3_0_phy>;
16399fa8ac5SKonstantin Porotchkin	phys = <&cp0_utmi0>;
16499fa8ac5SKonstantin Porotchkin	phy-names = "utmi";
16599fa8ac5SKonstantin Porotchkin	dr_mode = "host";
166ec03445cSThomas Petazzoni	status = "okay";
167ec03445cSThomas Petazzoni};
168ec03445cSThomas Petazzoni
16996018a6fSMiquel Raynal&cp0_comphy4 {
17096018a6fSMiquel Raynal	cp0_usbh1_con: connector {
17196018a6fSMiquel Raynal		compatible = "usb-a-connector";
17296018a6fSMiquel Raynal		phy-supply = <&cp0_reg_usb3_1_vbus>;
17396018a6fSMiquel Raynal	};
17496018a6fSMiquel Raynal};
17596018a6fSMiquel Raynal
176ec03445cSThomas Petazzoni/* CON10 on CP0 expansion */
17791f1be92SThomas Petazzoni&cp0_usb3_1 {
17899fa8ac5SKonstantin Porotchkin	phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
17999fa8ac5SKonstantin Porotchkin	phy-names = "usb", "utmi";
18099fa8ac5SKonstantin Porotchkin	dr_mode = "host";
181ec03445cSThomas Petazzoni	status = "okay";
182ec03445cSThomas Petazzoni};
183ec03445cSThomas Petazzoni
18491f1be92SThomas Petazzoni&cp0_mdio {
1853c6912cdSAntoine Tenart	status = "okay";
1863c6912cdSAntoine Tenart
18760894719SThomas Petazzoni	phy1: ethernet-phy@1 {
18860894719SThomas Petazzoni		reg = <1>;
18960894719SThomas Petazzoni	};
19060894719SThomas Petazzoni};
19160894719SThomas Petazzoni
19291f1be92SThomas Petazzoni&cp0_ethernet {
19360894719SThomas Petazzoni	status = "okay";
19460894719SThomas Petazzoni};
19560894719SThomas Petazzoni
19691f1be92SThomas Petazzoni&cp0_eth0 {
1970539cbb5SAntoine Tenart	status = "okay";
19845b25653SKonstantin Porotchkin	phy-mode = "10gbase-r";
199639585acSAntoine Tenart
200639585acSAntoine Tenart	fixed-link {
201639585acSAntoine Tenart		speed = <10000>;
202639585acSAntoine Tenart		full-duplex;
203639585acSAntoine Tenart	};
2040539cbb5SAntoine Tenart};
2050539cbb5SAntoine Tenart
20691f1be92SThomas Petazzoni&cp0_eth2 {
20760894719SThomas Petazzoni	status = "okay";
20860894719SThomas Petazzoni	phy = <&phy1>;
20960894719SThomas Petazzoni	phy-mode = "rgmii-id";
21060894719SThomas Petazzoni};
21160894719SThomas Petazzoni
21230571678SThomas Petazzoni/* CON6 on CP1 expansion */
21391f1be92SThomas Petazzoni&cp1_pcie0 {
214ce55522cSMiquel Raynal	phys = <&cp1_comphy0 0>;
215ce55522cSMiquel Raynal	phy-names = "cp1-pcie0-x1-phy";
21630571678SThomas Petazzoni	status = "okay";
21730571678SThomas Petazzoni};
21830571678SThomas Petazzoni
21930571678SThomas Petazzoni/* CON7 on CP1 expansion */
22091f1be92SThomas Petazzoni&cp1_pcie1 {
221ce55522cSMiquel Raynal	phys = <&cp1_comphy4 1>;
222ce55522cSMiquel Raynal	phy-names = "cp1-pcie1-x1-phy";
22330571678SThomas Petazzoni	status = "okay";
22430571678SThomas Petazzoni};
22530571678SThomas Petazzoni
226ec03445cSThomas Petazzoni/* CON5 on CP1 expansion */
22791f1be92SThomas Petazzoni&cp1_pcie2 {
228ce55522cSMiquel Raynal	phys = <&cp1_comphy5 2>;
229ce55522cSMiquel Raynal	phy-names = "cp1-pcie2-x1-phy";
230ec03445cSThomas Petazzoni	status = "okay";
231ec03445cSThomas Petazzoni};
232ec03445cSThomas Petazzoni
23391f1be92SThomas Petazzoni&cp1_i2c0 {
234ec03445cSThomas Petazzoni	status = "okay";
235ec03445cSThomas Petazzoni	clock-frequency = <100000>;
236ec03445cSThomas Petazzoni};
237ec03445cSThomas Petazzoni
23891f1be92SThomas Petazzoni&cp1_spi1 {
239441fadadSChristine Gharzuzi	status = "okay";
240441fadadSChristine Gharzuzi
241*2f00bb4aSKrzysztof Kozlowski	flash@0 {
242441fadadSChristine Gharzuzi		compatible = "jedec,spi-nor";
243441fadadSChristine Gharzuzi		reg = <0x0>;
244441fadadSChristine Gharzuzi		spi-max-frequency = <20000000>;
245441fadadSChristine Gharzuzi
246441fadadSChristine Gharzuzi		partitions {
247441fadadSChristine Gharzuzi			compatible = "fixed-partitions";
248441fadadSChristine Gharzuzi			#address-cells = <1>;
249441fadadSChristine Gharzuzi			#size-cells = <1>;
250441fadadSChristine Gharzuzi
251441fadadSChristine Gharzuzi			partition@0 {
252441fadadSChristine Gharzuzi				label = "Boot";
253441fadadSChristine Gharzuzi				reg = <0x0 0x200000>;
254441fadadSChristine Gharzuzi			};
255441fadadSChristine Gharzuzi			partition@200000 {
256441fadadSChristine Gharzuzi				label = "Filesystem";
257441fadadSChristine Gharzuzi				reg = <0x200000 0xd00000>;
258441fadadSChristine Gharzuzi			};
259441fadadSChristine Gharzuzi			partition@f00000 {
260441fadadSChristine Gharzuzi				label = "Boot_2nd";
261441fadadSChristine Gharzuzi				reg = <0xf00000 0x100000>;
262441fadadSChristine Gharzuzi			};
263441fadadSChristine Gharzuzi		};
264441fadadSChristine Gharzuzi	};
265441fadadSChristine Gharzuzi};
266441fadadSChristine Gharzuzi
2677b31e3adSMiquel Raynal/*
2687b31e3adSMiquel Raynal * Proper NAND usage will require DPR-76 to be in position 1-2, which disables
2697b31e3adSMiquel Raynal * MDIO signal of CP1.
2707b31e3adSMiquel Raynal */
27141d63e45SMiquel Raynal&cp1_nand_controller {
2727b31e3adSMiquel Raynal	pinctrl-0 = <&nand_pins>, <&nand_rb>;
2737b31e3adSMiquel Raynal	pinctrl-names = "default";
27441d63e45SMiquel Raynal
27541d63e45SMiquel Raynal	nand@0 {
27641d63e45SMiquel Raynal		reg = <0>;
27741d63e45SMiquel Raynal		nand-rb = <0>;
27841d63e45SMiquel Raynal		nand-on-flash-bbt;
2797b31e3adSMiquel Raynal		nand-ecc-strength = <4>;
2807b31e3adSMiquel Raynal		nand-ecc-step-size = <512>;
28141d63e45SMiquel Raynal
28241d63e45SMiquel Raynal		partitions {
28341d63e45SMiquel Raynal			compatible = "fixed-partitions";
28441d63e45SMiquel Raynal			#address-cells = <1>;
28541d63e45SMiquel Raynal			#size-cells = <1>;
2867b31e3adSMiquel Raynal
2877b31e3adSMiquel Raynal			partition@0 {
2887b31e3adSMiquel Raynal				label = "U-Boot";
2897b31e3adSMiquel Raynal				reg = <0 0x200000>;
2907b31e3adSMiquel Raynal			};
2917b31e3adSMiquel Raynal			partition@200000 {
2927b31e3adSMiquel Raynal				label = "Linux";
2937b31e3adSMiquel Raynal				reg = <0x200000 0xe00000>;
2947b31e3adSMiquel Raynal			};
2957b31e3adSMiquel Raynal			partition@1000000 {
2967b31e3adSMiquel Raynal				label = "Filesystem";
2977b31e3adSMiquel Raynal				reg = <0x1000000 0x3f000000>;
2987b31e3adSMiquel Raynal			};
2997b31e3adSMiquel Raynal		};
30041d63e45SMiquel Raynal	};
30141d63e45SMiquel Raynal};
3027b31e3adSMiquel Raynal
303ec03445cSThomas Petazzoni/* CON4 on CP1 expansion */
30491f1be92SThomas Petazzoni&cp1_sata0 {
305ec03445cSThomas Petazzoni	status = "okay";
306d04abe99SMiquel Raynal
307d04abe99SMiquel Raynal	sata-port@0 {
308d04abe99SMiquel Raynal		phys = <&cp1_comphy1 0>;
309d04abe99SMiquel Raynal		phy-names = "cp1-sata0-0-phy";
310d04abe99SMiquel Raynal	};
311d04abe99SMiquel Raynal	sata-port@1 {
312d04abe99SMiquel Raynal		phys = <&cp1_comphy3 1>;
313d04abe99SMiquel Raynal		phy-names = "cp1-sata0-1-phy";
314d04abe99SMiquel Raynal	};
315ec03445cSThomas Petazzoni};
316ec03445cSThomas Petazzoni
31799fa8ac5SKonstantin Porotchkin&cp1_utmi {
31899fa8ac5SKonstantin Porotchkin	status = "okay";
31999fa8ac5SKonstantin Porotchkin};
32099fa8ac5SKonstantin Porotchkin
321ec03445cSThomas Petazzoni/* CON9 on CP1 expansion */
32291f1be92SThomas Petazzoni&cp1_usb3_0 {
32391f1be92SThomas Petazzoni	usb-phy = <&cp1_usb3_0_phy>;
32499fa8ac5SKonstantin Porotchkin	phys = <&cp1_utmi0>;
32599fa8ac5SKonstantin Porotchkin	phy-names = "utmi";
32699fa8ac5SKonstantin Porotchkin	dr_mode = "host";
327ec03445cSThomas Petazzoni	status = "okay";
328ec03445cSThomas Petazzoni};
329ec03445cSThomas Petazzoni
330ec03445cSThomas Petazzoni/* CON10 on CP1 expansion */
33191f1be92SThomas Petazzoni&cp1_usb3_1 {
33299fa8ac5SKonstantin Porotchkin	phys = <&cp1_utmi1>;
33399fa8ac5SKonstantin Porotchkin	phy-names = "utmi";
334ec03445cSThomas Petazzoni	status = "okay";
335ec03445cSThomas Petazzoni};
336910b4c5cSGregory CLEMENT
33791f1be92SThomas Petazzoni&cp1_mdio {
3383c6912cdSAntoine Tenart	status = "okay";
3393c6912cdSAntoine Tenart
3404f08187dSMarcin Wojtas	phy0: ethernet-phy@0 {
3414f08187dSMarcin Wojtas		reg = <0>;
3424f08187dSMarcin Wojtas	};
3434f08187dSMarcin Wojtas};
3444f08187dSMarcin Wojtas
34591f1be92SThomas Petazzoni&cp1_ethernet {
3464f08187dSMarcin Wojtas	status = "okay";
3474f08187dSMarcin Wojtas};
3484f08187dSMarcin Wojtas
34991f1be92SThomas Petazzoni&cp1_eth0 {
3500539cbb5SAntoine Tenart	status = "okay";
35145b25653SKonstantin Porotchkin	phy-mode = "10gbase-r";
352639585acSAntoine Tenart
353639585acSAntoine Tenart	fixed-link {
354639585acSAntoine Tenart		speed = <10000>;
355639585acSAntoine Tenart		full-duplex;
356639585acSAntoine Tenart	};
3570539cbb5SAntoine Tenart};
3580539cbb5SAntoine Tenart
35991f1be92SThomas Petazzoni&cp1_eth1 {
3604f08187dSMarcin Wojtas	status = "okay";
3614f08187dSMarcin Wojtas	phy = <&phy0>;
3624f08187dSMarcin Wojtas	phy-mode = "rgmii-id";
3634f08187dSMarcin Wojtas};
3644f08187dSMarcin Wojtas
365910b4c5cSGregory CLEMENT&ap_sdhci0 {
366910b4c5cSGregory CLEMENT	status = "okay";
367910b4c5cSGregory CLEMENT	bus-width = <4>;
368910b4c5cSGregory CLEMENT	non-removable;
369910b4c5cSGregory CLEMENT};
370910b4c5cSGregory CLEMENT
37191f1be92SThomas Petazzoni&cp0_sdhci0 {
372910b4c5cSGregory CLEMENT	status = "okay";
373910b4c5cSGregory CLEMENT	bus-width = <8>;
374910b4c5cSGregory CLEMENT	non-removable;
375910b4c5cSGregory CLEMENT};
376