175dba886SGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2ec7e5a56SThomas Petazzoni/*
3ec7e5a56SThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd.
4ec7e5a56SThomas Petazzoni *
5ec7e5a56SThomas Petazzoni * Device Tree file for Marvell Armada 7040 Development board platform
6ec7e5a56SThomas Petazzoni */
7ec7e5a56SThomas Petazzoni
8915c71daSHanna Hawa#include <dt-bindings/gpio/gpio.h>
9ec7e5a56SThomas Petazzoni#include "armada-7040.dtsi"
10ec7e5a56SThomas Petazzoni
11ec7e5a56SThomas Petazzoni/ {
12ec7e5a56SThomas Petazzoni	model = "Marvell Armada 7040 DB board";
13ec7e5a56SThomas Petazzoni	compatible = "marvell,armada7040-db", "marvell,armada7040",
14ec7e5a56SThomas Petazzoni		     "marvell,armada-ap806-quad", "marvell,armada-ap806";
15ec7e5a56SThomas Petazzoni
16bf151162SThomas Petazzoni	chosen {
17bf151162SThomas Petazzoni		stdout-path = "serial0:115200n8";
18bf151162SThomas Petazzoni	};
19bf151162SThomas Petazzoni
20d8bcaabeSRob Herring	memory@0 {
21ec7e5a56SThomas Petazzoni		device_type = "memory";
22ec7e5a56SThomas Petazzoni		reg = <0x0 0x0 0x0 0x80000000>;
23ec7e5a56SThomas Petazzoni	};
24915c71daSHanna Hawa
25474c5885SYan Markman	aliases {
26474c5885SYan Markman		ethernet0 = &cp0_eth0;
27474c5885SYan Markman		ethernet1 = &cp0_eth1;
28474c5885SYan Markman		ethernet2 = &cp0_eth2;
29474c5885SYan Markman	};
30474c5885SYan Markman
3191f1be92SThomas Petazzoni	cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus {
32915c71daSHanna Hawa		compatible = "regulator-fixed";
33915c71daSHanna Hawa		regulator-name = "usb3h0-vbus";
34915c71daSHanna Hawa		regulator-min-microvolt = <5000000>;
35915c71daSHanna Hawa		regulator-max-microvolt = <5000000>;
36915c71daSHanna Hawa		enable-active-high;
37915c71daSHanna Hawa		gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
38915c71daSHanna Hawa	};
39915c71daSHanna Hawa
4091f1be92SThomas Petazzoni	cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus {
41915c71daSHanna Hawa		compatible = "regulator-fixed";
42915c71daSHanna Hawa		regulator-name = "usb3h1-vbus";
43915c71daSHanna Hawa		regulator-min-microvolt = <5000000>;
44915c71daSHanna Hawa		regulator-max-microvolt = <5000000>;
45915c71daSHanna Hawa		enable-active-high;
46915c71daSHanna Hawa		gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
47915c71daSHanna Hawa	};
48915c71daSHanna Hawa
4991f1be92SThomas Petazzoni	cp0_usb3_0_phy: cp0-usb3-0-phy {
50915c71daSHanna Hawa		compatible = "usb-nop-xceiv";
5191f1be92SThomas Petazzoni		vcc-supply = <&cp0_reg_usb3_0_vbus>;
52915c71daSHanna Hawa	};
53915c71daSHanna Hawa
5491f1be92SThomas Petazzoni	cp0_usb3_1_phy: cp0-usb3-1-phy {
55915c71daSHanna Hawa		compatible = "usb-nop-xceiv";
5691f1be92SThomas Petazzoni		vcc-supply = <&cp0_reg_usb3_1_vbus>;
57915c71daSHanna Hawa	};
58037ad463SAndreas Färber};
59ec7e5a56SThomas Petazzoni
60037ad463SAndreas Färber&i2c0 {
61037ad463SAndreas Färber	status = "okay";
62037ad463SAndreas Färber	clock-frequency = <100000>;
63037ad463SAndreas Färber};
64037ad463SAndreas Färber
65037ad463SAndreas Färber&spi0 {
66ec7e5a56SThomas Petazzoni	status = "okay";
67ec7e5a56SThomas Petazzoni
68ec7e5a56SThomas Petazzoni	spi-flash@0 {
69ec7e5a56SThomas Petazzoni		#address-cells = <1>;
70ec7e5a56SThomas Petazzoni		#size-cells = <1>;
71fe85e20eSThomas Petazzoni		compatible = "jedec,spi-nor";
72fe85e20eSThomas Petazzoni		reg = <0>;
73ec7e5a56SThomas Petazzoni		spi-max-frequency = <10000000>;
74ec7e5a56SThomas Petazzoni
75fe85e20eSThomas Petazzoni		partitions {
76fe85e20eSThomas Petazzoni			compatible = "fixed-partitions";
77fe85e20eSThomas Petazzoni			#address-cells = <1>;
78fe85e20eSThomas Petazzoni			#size-cells = <1>;
79fe85e20eSThomas Petazzoni
80ec7e5a56SThomas Petazzoni			partition@0 {
81ec7e5a56SThomas Petazzoni				label = "U-Boot";
82ec7e5a56SThomas Petazzoni				reg = <0 0x200000>;
83ec7e5a56SThomas Petazzoni			};
84ec7e5a56SThomas Petazzoni			partition@400000 {
85ec7e5a56SThomas Petazzoni				label = "Filesystem";
86ec7e5a56SThomas Petazzoni				reg = <0x200000 0xce0000>;
87ec7e5a56SThomas Petazzoni			};
88ec7e5a56SThomas Petazzoni		};
89ec7e5a56SThomas Petazzoni	};
90fe85e20eSThomas Petazzoni};
91ec7e5a56SThomas Petazzoni
92037ad463SAndreas Färber&uart0 {
93ec7e5a56SThomas Petazzoni	status = "okay";
949e83bbdbSThomas Petazzoni	pinctrl-0 = <&uart0_pins>;
959e83bbdbSThomas Petazzoni	pinctrl-names = "default";
96ec7e5a56SThomas Petazzoni};
97fea14498SThomas Petazzoni
98fea14498SThomas Petazzoni
9991f1be92SThomas Petazzoni&cp0_pcie2 {
100fea14498SThomas Petazzoni	status = "okay";
101fea14498SThomas Petazzoni};
102fea14498SThomas Petazzoni
10391f1be92SThomas Petazzoni&cp0_i2c0 {
104fea14498SThomas Petazzoni	status = "okay";
105fea14498SThomas Petazzoni	clock-frequency = <100000>;
106915c71daSHanna Hawa
107915c71daSHanna Hawa	expander0: pca9555@21 {
108915c71daSHanna Hawa		compatible = "nxp,pca9555";
109915c71daSHanna Hawa		pinctrl-names = "default";
110915c71daSHanna Hawa		gpio-controller;
111915c71daSHanna Hawa		#gpio-cells = <2>;
112915c71daSHanna Hawa		reg = <0x21>;
113a5f5c5bbSGregory CLEMENT		/*
114a5f5c5bbSGregory CLEMENT		 * IO0_0: USB3_PWR_EN0	IO1_0: USB_3_1_Dev_Detect
115a5f5c5bbSGregory CLEMENT		 * IO0_1: USB3_PWR_EN1	IO1_1: USB2_1_current_limit
116a5f5c5bbSGregory CLEMENT		 * IO0_2: DDR3_4_Detect	IO1_2: Hcon_IO_RstN
117a5f5c5bbSGregory CLEMENT		 * IO0_3: USB2_DEVICE_DETECT
118a5f5c5bbSGregory CLEMENT		 * IO0_4: GPIO_0	IO1_4: SD_Status
119a5f5c5bbSGregory CLEMENT		 * IO0_5: GPIO_1	IO1_5: LDO_5V_Enable
120a5f5c5bbSGregory CLEMENT		 * IO0_6: IHB_5V_Enable	IO1_6: PWR_EN_eMMC
121a5f5c5bbSGregory CLEMENT		 * IO0_7:		IO1_7: SDIO_Vcntrl
122a5f5c5bbSGregory CLEMENT		 */
123915c71daSHanna Hawa	};
124fea14498SThomas Petazzoni};
125fea14498SThomas Petazzoni
1261e09a73fSMiquel Raynal&cp0_nand_controller {
12773ae5fe8SGregory CLEMENT	/*
12873ae5fe8SGregory CLEMENT	 * SPI on CPM and NAND have common pins on this board. We can
1291e09a73fSMiquel Raynal	 * use only one at a time. To enable the NAND (which will
13073ae5fe8SGregory CLEMENT	 * disable the SPI), the "status = "okay";" line have to be
13173ae5fe8SGregory CLEMENT	 * added here.
13273ae5fe8SGregory CLEMENT	 */
13373ae5fe8SGregory CLEMENT	pinctrl-0 = <&nand_pins>, <&nand_rb>;
13473ae5fe8SGregory CLEMENT	pinctrl-names = "default";
1351e09a73fSMiquel Raynal
1361e09a73fSMiquel Raynal	nand@0 {
1371e09a73fSMiquel Raynal		reg = <0>;
1381e09a73fSMiquel Raynal		label = "pxa3xx_nand-0";
1391e09a73fSMiquel Raynal		nand-rb = <0>;
1401e09a73fSMiquel Raynal		nand-on-flash-bbt;
14173ae5fe8SGregory CLEMENT		nand-ecc-strength = <4>;
14273ae5fe8SGregory CLEMENT		nand-ecc-step-size = <512>;
1431e09a73fSMiquel Raynal
1441e09a73fSMiquel Raynal		partitions {
1451e09a73fSMiquel Raynal			compatible = "fixed-partitions";
1461e09a73fSMiquel Raynal			#address-cells = <1>;
1471e09a73fSMiquel Raynal			#size-cells = <1>;
14873ae5fe8SGregory CLEMENT
14973ae5fe8SGregory CLEMENT			partition@0 {
15073ae5fe8SGregory CLEMENT				label = "U-Boot";
15173ae5fe8SGregory CLEMENT				reg = <0 0x200000>;
15273ae5fe8SGregory CLEMENT			};
1531e09a73fSMiquel Raynal
15473ae5fe8SGregory CLEMENT			partition@200000 {
15573ae5fe8SGregory CLEMENT				label = "Linux";
15673ae5fe8SGregory CLEMENT				reg = <0x200000 0xe00000>;
15773ae5fe8SGregory CLEMENT			};
1581e09a73fSMiquel Raynal
15973ae5fe8SGregory CLEMENT			partition@1000000 {
16073ae5fe8SGregory CLEMENT				label = "Filesystem";
16173ae5fe8SGregory CLEMENT				reg = <0x1000000 0x3f000000>;
16273ae5fe8SGregory CLEMENT			};
16373ae5fe8SGregory CLEMENT
1641e09a73fSMiquel Raynal		};
1651e09a73fSMiquel Raynal	};
1661e09a73fSMiquel Raynal};
16773ae5fe8SGregory CLEMENT
16891f1be92SThomas Petazzoni&cp0_spi1 {
169fea14498SThomas Petazzoni	status = "okay";
170fea14498SThomas Petazzoni
171fea14498SThomas Petazzoni	spi-flash@0 {
172fea14498SThomas Petazzoni		#address-cells = <0x1>;
173fea14498SThomas Petazzoni		#size-cells = <0x1>;
174fea14498SThomas Petazzoni		compatible = "jedec,spi-nor";
175fea14498SThomas Petazzoni		reg = <0x0>;
176fea14498SThomas Petazzoni		spi-max-frequency = <20000000>;
177fea14498SThomas Petazzoni
178fea14498SThomas Petazzoni		partitions {
179fea14498SThomas Petazzoni			compatible = "fixed-partitions";
180fea14498SThomas Petazzoni			#address-cells = <1>;
181fea14498SThomas Petazzoni			#size-cells = <1>;
182fea14498SThomas Petazzoni
183fea14498SThomas Petazzoni			partition@0 {
184fea14498SThomas Petazzoni				label = "U-Boot";
185fea14498SThomas Petazzoni				reg = <0x0 0x200000>;
186fea14498SThomas Petazzoni			};
187fea14498SThomas Petazzoni
188fea14498SThomas Petazzoni			partition@400000 {
189fea14498SThomas Petazzoni				label = "Filesystem";
190fea14498SThomas Petazzoni				reg = <0x200000 0xe00000>;
191fea14498SThomas Petazzoni			};
192fea14498SThomas Petazzoni		};
193fea14498SThomas Petazzoni	};
194fea14498SThomas Petazzoni};
195fea14498SThomas Petazzoni
19691f1be92SThomas Petazzoni&cp0_sata0 {
197fea14498SThomas Petazzoni	status = "okay";
198fea14498SThomas Petazzoni};
199fea14498SThomas Petazzoni
20091f1be92SThomas Petazzoni&cp0_usb3_0 {
20191f1be92SThomas Petazzoni	usb-phy = <&cp0_usb3_0_phy>;
202fea14498SThomas Petazzoni	status = "okay";
203fea14498SThomas Petazzoni};
204fea14498SThomas Petazzoni
20591f1be92SThomas Petazzoni&cp0_usb3_1 {
20691f1be92SThomas Petazzoni	usb-phy = <&cp0_usb3_1_phy>;
207fea14498SThomas Petazzoni	status = "okay";
208fea14498SThomas Petazzoni};
20960894719SThomas Petazzoni
210910b4c5cSGregory CLEMENT&ap_sdhci0 {
211910b4c5cSGregory CLEMENT	status = "okay";
212910b4c5cSGregory CLEMENT	bus-width = <4>;
213910b4c5cSGregory CLEMENT	no-1-8-v;
214910b4c5cSGregory CLEMENT	non-removable;
215910b4c5cSGregory CLEMENT};
216910b4c5cSGregory CLEMENT
21791f1be92SThomas Petazzoni&cp0_sdhci0 {
218910b4c5cSGregory CLEMENT	status = "okay";
219910b4c5cSGregory CLEMENT	bus-width = <4>;
220910b4c5cSGregory CLEMENT	no-1-8-v;
221c4e3bf29SGregory CLEMENT	cd-gpios = <&expander0 12 GPIO_ACTIVE_LOW>;
222910b4c5cSGregory CLEMENT};
223910b4c5cSGregory CLEMENT
22491f1be92SThomas Petazzoni&cp0_mdio {
2253c6912cdSAntoine Tenart	status = "okay";
2263c6912cdSAntoine Tenart
22760894719SThomas Petazzoni	phy0: ethernet-phy@0 {
22860894719SThomas Petazzoni		reg = <0>;
22960894719SThomas Petazzoni	};
23060894719SThomas Petazzoni	phy1: ethernet-phy@1 {
23160894719SThomas Petazzoni		reg = <1>;
23260894719SThomas Petazzoni	};
23360894719SThomas Petazzoni};
23460894719SThomas Petazzoni
23591f1be92SThomas Petazzoni&cp0_ethernet {
23660894719SThomas Petazzoni	status = "okay";
23760894719SThomas Petazzoni};
23860894719SThomas Petazzoni
23991f1be92SThomas Petazzoni&cp0_eth0 {
24030967cfeSAntoine Tenart	status = "okay";
24130967cfeSAntoine Tenart	/* Network PHY */
24230967cfeSAntoine Tenart	phy-mode = "10gbase-kr";
24330967cfeSAntoine Tenart	/* Generic PHY, providing serdes lanes */
24491f1be92SThomas Petazzoni	phys = <&cp0_comphy2 0>;
24530967cfeSAntoine Tenart};
24630967cfeSAntoine Tenart
24791f1be92SThomas Petazzoni&cp0_eth1 {
24860894719SThomas Petazzoni	status = "okay";
249723abeedSAntoine Tenart	/* Network PHY */
25060894719SThomas Petazzoni	phy = <&phy0>;
25160894719SThomas Petazzoni	phy-mode = "sgmii";
252723abeedSAntoine Tenart	/* Generic PHY, providing serdes lanes */
25391f1be92SThomas Petazzoni	phys = <&cp0_comphy0 1>;
25460894719SThomas Petazzoni};
25560894719SThomas Petazzoni
25691f1be92SThomas Petazzoni&cp0_eth2 {
25760894719SThomas Petazzoni	status = "okay";
25860894719SThomas Petazzoni	phy = <&phy1>;
25960894719SThomas Petazzoni	phy-mode = "rgmii-id";
26060894719SThomas Petazzoni};
261