1ec7e5a56SThomas Petazzoni/*
2ec7e5a56SThomas Petazzoni * Copyright (C) 2016 Marvell Technology Group Ltd.
3ec7e5a56SThomas Petazzoni *
4ec7e5a56SThomas Petazzoni * This file is dual-licensed: you can use it either under the terms
5ec7e5a56SThomas Petazzoni * of the GPLv2 or the X11 license, at your option. Note that this dual
6ec7e5a56SThomas Petazzoni * licensing only applies to this file, and not this project as a
7ec7e5a56SThomas Petazzoni * whole.
8ec7e5a56SThomas Petazzoni *
9ec7e5a56SThomas Petazzoni *  a) This library is free software; you can redistribute it and/or
10ec7e5a56SThomas Petazzoni *     modify it under the terms of the GNU General Public License as
11ec7e5a56SThomas Petazzoni *     published by the Free Software Foundation; either version 2 of the
12ec7e5a56SThomas Petazzoni *     License, or (at your option) any later version.
13ec7e5a56SThomas Petazzoni *
14ec7e5a56SThomas Petazzoni *     This library is distributed in the hope that it will be useful,
15ec7e5a56SThomas Petazzoni *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16ec7e5a56SThomas Petazzoni *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17ec7e5a56SThomas Petazzoni *     GNU General Public License for more details.
18ec7e5a56SThomas Petazzoni *
19ec7e5a56SThomas Petazzoni * Or, alternatively,
20ec7e5a56SThomas Petazzoni *
21ec7e5a56SThomas Petazzoni *  b) Permission is hereby granted, free of charge, to any person
22ec7e5a56SThomas Petazzoni *     obtaining a copy of this software and associated documentation
23ec7e5a56SThomas Petazzoni *     files (the "Software"), to deal in the Software without
24ec7e5a56SThomas Petazzoni *     restriction, including without limitation the rights to use,
25ec7e5a56SThomas Petazzoni *     copy, modify, merge, publish, distribute, sublicense, and/or
26ec7e5a56SThomas Petazzoni *     sell copies of the Software, and to permit persons to whom the
27ec7e5a56SThomas Petazzoni *     Software is furnished to do so, subject to the following
28ec7e5a56SThomas Petazzoni *     conditions:
29ec7e5a56SThomas Petazzoni *
30ec7e5a56SThomas Petazzoni *     The above copyright notice and this permission notice shall be
31ec7e5a56SThomas Petazzoni *     included in all copies or substantial portions of the Software.
32ec7e5a56SThomas Petazzoni *
33ec7e5a56SThomas Petazzoni *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34ec7e5a56SThomas Petazzoni *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35ec7e5a56SThomas Petazzoni *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36ec7e5a56SThomas Petazzoni *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37ec7e5a56SThomas Petazzoni *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38ec7e5a56SThomas Petazzoni *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39ec7e5a56SThomas Petazzoni *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40ec7e5a56SThomas Petazzoni *     OTHER DEALINGS IN THE SOFTWARE.
41ec7e5a56SThomas Petazzoni */
42ec7e5a56SThomas Petazzoni
43ec7e5a56SThomas Petazzoni/*
44ec7e5a56SThomas Petazzoni * Device Tree file for Marvell Armada 7040 Development board platform
45ec7e5a56SThomas Petazzoni */
46ec7e5a56SThomas Petazzoni
47915c71daSHanna Hawa#include <dt-bindings/gpio/gpio.h>
48ec7e5a56SThomas Petazzoni#include "armada-7040.dtsi"
49ec7e5a56SThomas Petazzoni
50ec7e5a56SThomas Petazzoni/ {
51ec7e5a56SThomas Petazzoni	model = "Marvell Armada 7040 DB board";
52ec7e5a56SThomas Petazzoni	compatible = "marvell,armada7040-db", "marvell,armada7040",
53ec7e5a56SThomas Petazzoni		     "marvell,armada-ap806-quad", "marvell,armada-ap806";
54ec7e5a56SThomas Petazzoni
55bf151162SThomas Petazzoni	chosen {
56bf151162SThomas Petazzoni		stdout-path = "serial0:115200n8";
57bf151162SThomas Petazzoni	};
58bf151162SThomas Petazzoni
59d8bcaabeSRob Herring	memory@0 {
60ec7e5a56SThomas Petazzoni		device_type = "memory";
61ec7e5a56SThomas Petazzoni		reg = <0x0 0x0 0x0 0x80000000>;
62ec7e5a56SThomas Petazzoni	};
63915c71daSHanna Hawa
64474c5885SYan Markman	aliases {
65474c5885SYan Markman		ethernet0 = &cp0_eth0;
66474c5885SYan Markman		ethernet1 = &cp0_eth1;
67474c5885SYan Markman		ethernet2 = &cp0_eth2;
68474c5885SYan Markman	};
69474c5885SYan Markman
7091f1be92SThomas Petazzoni	cp0_reg_usb3_0_vbus: cp0-usb3-0-vbus {
71915c71daSHanna Hawa		compatible = "regulator-fixed";
72915c71daSHanna Hawa		regulator-name = "usb3h0-vbus";
73915c71daSHanna Hawa		regulator-min-microvolt = <5000000>;
74915c71daSHanna Hawa		regulator-max-microvolt = <5000000>;
75915c71daSHanna Hawa		enable-active-high;
76915c71daSHanna Hawa		gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
77915c71daSHanna Hawa	};
78915c71daSHanna Hawa
7991f1be92SThomas Petazzoni	cp0_reg_usb3_1_vbus: cp0-usb3-1-vbus {
80915c71daSHanna Hawa		compatible = "regulator-fixed";
81915c71daSHanna Hawa		regulator-name = "usb3h1-vbus";
82915c71daSHanna Hawa		regulator-min-microvolt = <5000000>;
83915c71daSHanna Hawa		regulator-max-microvolt = <5000000>;
84915c71daSHanna Hawa		enable-active-high;
85915c71daSHanna Hawa		gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
86915c71daSHanna Hawa	};
87915c71daSHanna Hawa
8891f1be92SThomas Petazzoni	cp0_usb3_0_phy: cp0-usb3-0-phy {
89915c71daSHanna Hawa		compatible = "usb-nop-xceiv";
9091f1be92SThomas Petazzoni		vcc-supply = <&cp0_reg_usb3_0_vbus>;
91915c71daSHanna Hawa	};
92915c71daSHanna Hawa
9391f1be92SThomas Petazzoni	cp0_usb3_1_phy: cp0-usb3-1-phy {
94915c71daSHanna Hawa		compatible = "usb-nop-xceiv";
9591f1be92SThomas Petazzoni		vcc-supply = <&cp0_reg_usb3_1_vbus>;
96915c71daSHanna Hawa	};
97037ad463SAndreas Färber};
98ec7e5a56SThomas Petazzoni
99037ad463SAndreas Färber&i2c0 {
100037ad463SAndreas Färber	status = "okay";
101037ad463SAndreas Färber	clock-frequency = <100000>;
102037ad463SAndreas Färber};
103037ad463SAndreas Färber
104037ad463SAndreas Färber&spi0 {
105ec7e5a56SThomas Petazzoni	status = "okay";
106ec7e5a56SThomas Petazzoni
107ec7e5a56SThomas Petazzoni	spi-flash@0 {
108ec7e5a56SThomas Petazzoni		#address-cells = <1>;
109ec7e5a56SThomas Petazzoni		#size-cells = <1>;
110fe85e20eSThomas Petazzoni		compatible = "jedec,spi-nor";
111fe85e20eSThomas Petazzoni		reg = <0>;
112ec7e5a56SThomas Petazzoni		spi-max-frequency = <10000000>;
113ec7e5a56SThomas Petazzoni
114fe85e20eSThomas Petazzoni		partitions {
115fe85e20eSThomas Petazzoni			compatible = "fixed-partitions";
116fe85e20eSThomas Petazzoni			#address-cells = <1>;
117fe85e20eSThomas Petazzoni			#size-cells = <1>;
118fe85e20eSThomas Petazzoni
119ec7e5a56SThomas Petazzoni			partition@0 {
120ec7e5a56SThomas Petazzoni				label = "U-Boot";
121ec7e5a56SThomas Petazzoni				reg = <0 0x200000>;
122ec7e5a56SThomas Petazzoni			};
123ec7e5a56SThomas Petazzoni			partition@400000 {
124ec7e5a56SThomas Petazzoni				label = "Filesystem";
125ec7e5a56SThomas Petazzoni				reg = <0x200000 0xce0000>;
126ec7e5a56SThomas Petazzoni			};
127ec7e5a56SThomas Petazzoni		};
128ec7e5a56SThomas Petazzoni	};
129fe85e20eSThomas Petazzoni};
130ec7e5a56SThomas Petazzoni
131037ad463SAndreas Färber&uart0 {
132ec7e5a56SThomas Petazzoni	status = "okay";
1339e83bbdbSThomas Petazzoni	pinctrl-0 = <&uart0_pins>;
1349e83bbdbSThomas Petazzoni	pinctrl-names = "default";
135ec7e5a56SThomas Petazzoni};
136fea14498SThomas Petazzoni
137fea14498SThomas Petazzoni
13891f1be92SThomas Petazzoni&cp0_pcie2 {
139fea14498SThomas Petazzoni	status = "okay";
140fea14498SThomas Petazzoni};
141fea14498SThomas Petazzoni
14291f1be92SThomas Petazzoni&cp0_i2c0 {
143fea14498SThomas Petazzoni	status = "okay";
144fea14498SThomas Petazzoni	clock-frequency = <100000>;
145915c71daSHanna Hawa
146915c71daSHanna Hawa	expander0: pca9555@21 {
147915c71daSHanna Hawa		compatible = "nxp,pca9555";
148915c71daSHanna Hawa		pinctrl-names = "default";
149915c71daSHanna Hawa		gpio-controller;
150915c71daSHanna Hawa		#gpio-cells = <2>;
151915c71daSHanna Hawa		reg = <0x21>;
152a5f5c5bbSGregory CLEMENT		/*
153a5f5c5bbSGregory CLEMENT		 * IO0_0: USB3_PWR_EN0	IO1_0: USB_3_1_Dev_Detect
154a5f5c5bbSGregory CLEMENT		 * IO0_1: USB3_PWR_EN1	IO1_1: USB2_1_current_limit
155a5f5c5bbSGregory CLEMENT		 * IO0_2: DDR3_4_Detect	IO1_2: Hcon_IO_RstN
156a5f5c5bbSGregory CLEMENT		 * IO0_3: USB2_DEVICE_DETECT
157a5f5c5bbSGregory CLEMENT		 * IO0_4: GPIO_0	IO1_4: SD_Status
158a5f5c5bbSGregory CLEMENT		 * IO0_5: GPIO_1	IO1_5: LDO_5V_Enable
159a5f5c5bbSGregory CLEMENT		 * IO0_6: IHB_5V_Enable	IO1_6: PWR_EN_eMMC
160a5f5c5bbSGregory CLEMENT		 * IO0_7:		IO1_7: SDIO_Vcntrl
161a5f5c5bbSGregory CLEMENT		 */
162915c71daSHanna Hawa	};
163fea14498SThomas Petazzoni};
164fea14498SThomas Petazzoni
16591f1be92SThomas Petazzoni&cp0_nand {
16673ae5fe8SGregory CLEMENT	/*
16773ae5fe8SGregory CLEMENT	 * SPI on CPM and NAND have common pins on this board. We can
16873ae5fe8SGregory CLEMENT	 * use only one at a time. To enable the NAND (whihch will
16973ae5fe8SGregory CLEMENT	 * disable the SPI), the "status = "okay";" line have to be
17073ae5fe8SGregory CLEMENT	 * added here.
17173ae5fe8SGregory CLEMENT	 */
17273ae5fe8SGregory CLEMENT	num-cs = <1>;
17373ae5fe8SGregory CLEMENT	pinctrl-0 = <&nand_pins>, <&nand_rb>;
17473ae5fe8SGregory CLEMENT	pinctrl-names = "default";
17573ae5fe8SGregory CLEMENT	nand-ecc-strength = <4>;
17673ae5fe8SGregory CLEMENT	nand-ecc-step-size = <512>;
17773ae5fe8SGregory CLEMENT	marvell,nand-enable-arbiter;
17873ae5fe8SGregory CLEMENT	nand-on-flash-bbt;
17973ae5fe8SGregory CLEMENT
18073ae5fe8SGregory CLEMENT	partition@0 {
18173ae5fe8SGregory CLEMENT		label = "U-Boot";
18273ae5fe8SGregory CLEMENT		reg = <0 0x200000>;
18373ae5fe8SGregory CLEMENT	};
18473ae5fe8SGregory CLEMENT	partition@200000 {
18573ae5fe8SGregory CLEMENT		label = "Linux";
18673ae5fe8SGregory CLEMENT		reg = <0x200000 0xe00000>;
18773ae5fe8SGregory CLEMENT	};
18873ae5fe8SGregory CLEMENT	partition@1000000 {
18973ae5fe8SGregory CLEMENT		label = "Filesystem";
19073ae5fe8SGregory CLEMENT		reg = <0x1000000 0x3f000000>;
19173ae5fe8SGregory CLEMENT	};
19273ae5fe8SGregory CLEMENT};
19373ae5fe8SGregory CLEMENT
19473ae5fe8SGregory CLEMENT
19591f1be92SThomas Petazzoni&cp0_spi1 {
196fea14498SThomas Petazzoni	status = "okay";
197fea14498SThomas Petazzoni
198fea14498SThomas Petazzoni	spi-flash@0 {
199fea14498SThomas Petazzoni		#address-cells = <0x1>;
200fea14498SThomas Petazzoni		#size-cells = <0x1>;
201fea14498SThomas Petazzoni		compatible = "jedec,spi-nor";
202fea14498SThomas Petazzoni		reg = <0x0>;
203fea14498SThomas Petazzoni		spi-max-frequency = <20000000>;
204fea14498SThomas Petazzoni
205fea14498SThomas Petazzoni		partitions {
206fea14498SThomas Petazzoni			compatible = "fixed-partitions";
207fea14498SThomas Petazzoni			#address-cells = <1>;
208fea14498SThomas Petazzoni			#size-cells = <1>;
209fea14498SThomas Petazzoni
210fea14498SThomas Petazzoni			partition@0 {
211fea14498SThomas Petazzoni				label = "U-Boot";
212fea14498SThomas Petazzoni				reg = <0x0 0x200000>;
213fea14498SThomas Petazzoni			};
214fea14498SThomas Petazzoni
215fea14498SThomas Petazzoni			partition@400000 {
216fea14498SThomas Petazzoni				label = "Filesystem";
217fea14498SThomas Petazzoni				reg = <0x200000 0xe00000>;
218fea14498SThomas Petazzoni			};
219fea14498SThomas Petazzoni		};
220fea14498SThomas Petazzoni	};
221fea14498SThomas Petazzoni};
222fea14498SThomas Petazzoni
22391f1be92SThomas Petazzoni&cp0_sata0 {
224fea14498SThomas Petazzoni	status = "okay";
225fea14498SThomas Petazzoni};
226fea14498SThomas Petazzoni
22791f1be92SThomas Petazzoni&cp0_usb3_0 {
22891f1be92SThomas Petazzoni	usb-phy = <&cp0_usb3_0_phy>;
229fea14498SThomas Petazzoni	status = "okay";
230fea14498SThomas Petazzoni};
231fea14498SThomas Petazzoni
23291f1be92SThomas Petazzoni&cp0_usb3_1 {
23391f1be92SThomas Petazzoni	usb-phy = <&cp0_usb3_1_phy>;
234fea14498SThomas Petazzoni	status = "okay";
235fea14498SThomas Petazzoni};
23660894719SThomas Petazzoni
237910b4c5cSGregory CLEMENT&ap_sdhci0 {
238910b4c5cSGregory CLEMENT	status = "okay";
239910b4c5cSGregory CLEMENT	bus-width = <4>;
240910b4c5cSGregory CLEMENT	no-1-8-v;
241910b4c5cSGregory CLEMENT	non-removable;
242910b4c5cSGregory CLEMENT};
243910b4c5cSGregory CLEMENT
24491f1be92SThomas Petazzoni&cp0_sdhci0 {
245910b4c5cSGregory CLEMENT	status = "okay";
246910b4c5cSGregory CLEMENT	bus-width = <4>;
247910b4c5cSGregory CLEMENT	no-1-8-v;
248c4e3bf29SGregory CLEMENT	cd-gpios = <&expander0 12 GPIO_ACTIVE_LOW>;
249910b4c5cSGregory CLEMENT};
250910b4c5cSGregory CLEMENT
25191f1be92SThomas Petazzoni&cp0_mdio {
2523c6912cdSAntoine Tenart	status = "okay";
2533c6912cdSAntoine Tenart
25460894719SThomas Petazzoni	phy0: ethernet-phy@0 {
25560894719SThomas Petazzoni		reg = <0>;
25660894719SThomas Petazzoni	};
25760894719SThomas Petazzoni	phy1: ethernet-phy@1 {
25860894719SThomas Petazzoni		reg = <1>;
25960894719SThomas Petazzoni	};
26060894719SThomas Petazzoni};
26160894719SThomas Petazzoni
26291f1be92SThomas Petazzoni&cp0_ethernet {
26360894719SThomas Petazzoni	status = "okay";
26460894719SThomas Petazzoni};
26560894719SThomas Petazzoni
26691f1be92SThomas Petazzoni&cp0_eth0 {
26730967cfeSAntoine Tenart	status = "okay";
26830967cfeSAntoine Tenart	/* Network PHY */
26930967cfeSAntoine Tenart	phy-mode = "10gbase-kr";
27030967cfeSAntoine Tenart	/* Generic PHY, providing serdes lanes */
27191f1be92SThomas Petazzoni	phys = <&cp0_comphy2 0>;
27230967cfeSAntoine Tenart};
27330967cfeSAntoine Tenart
27491f1be92SThomas Petazzoni&cp0_eth1 {
27560894719SThomas Petazzoni	status = "okay";
276723abeedSAntoine Tenart	/* Network PHY */
27760894719SThomas Petazzoni	phy = <&phy0>;
27860894719SThomas Petazzoni	phy-mode = "sgmii";
279723abeedSAntoine Tenart	/* Generic PHY, providing serdes lanes */
28091f1be92SThomas Petazzoni	phys = <&cp0_comphy0 1>;
28160894719SThomas Petazzoni};
28260894719SThomas Petazzoni
28391f1be92SThomas Petazzoni&cp0_eth2 {
28460894719SThomas Petazzoni	status = "okay";
28560894719SThomas Petazzoni	phy = <&phy1>;
28660894719SThomas Petazzoni	phy-mode = "rgmii-id";
28760894719SThomas Petazzoni};
288