1// SPDX-License-Identifier: GPL-2.0+ or X11
2/*
3 * Device Tree file for CZ.NIC Turris Mox Board
4 * 2018 by Marek Behun <marek.behun@nic.cz>
5 *
6 * Based on armada-3720-espressobin.dts by:
7 *   Gregory CLEMENT <gregory.clement@free-electrons.com>
8 *   Konstantin Porotchkin <kostap@marvell.com>
9 */
10
11/dts-v1/;
12
13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/input/input.h>
15#include <dt-bindings/leds/common.h>
16#include "armada-372x.dtsi"
17
18/ {
19	model = "CZ.NIC Turris Mox Board";
20	compatible = "cznic,turris-mox", "marvell,armada3720",
21		     "marvell,armada3710";
22
23	chosen {
24		stdout-path = "serial0:115200n8";
25	};
26
27	aliases {
28		ethernet0 = &eth0;
29		ethernet1 = &eth1;
30		i2c0 = &i2c0;
31		spi0 = &spi0;
32	};
33
34	memory {
35		device_type = "memory";
36		reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
37	};
38
39	leds {
40		compatible = "gpio-leds";
41
42		led {
43			gpios = <&gpiosb 21 GPIO_ACTIVE_LOW>;
44			color = <LED_COLOR_ID_RED>;
45			function = LED_FUNCTION_ACTIVITY;
46		};
47	};
48
49	gpio-keys {
50		compatible = "gpio-keys";
51
52		reset {
53			compatible = "gpio-keys";
54			label = "reset";
55			linux,code = <KEY_RESTART>;
56			gpios = <&gpiosb 20 GPIO_ACTIVE_LOW>;
57			debounce-interval = <60>;
58		};
59	};
60
61	reg_usb3_vbus: usb3_vbus@0 {
62		compatible = "regulator-fixed";
63		regulator-name = "usb3-vbus";
64		regulator-min-microvolt = <5000000>;
65		regulator-max-microvolt = <5000000>;
66		startup-delay-us = <2000000>;
67		shutdown-delay-us = <1000000>;
68		gpio = <&gpiosb 0 GPIO_ACTIVE_HIGH>;
69		enable-active-high;
70		regulator-boot-on;
71	};
72
73	vsdc_reg: vsdc-reg {
74		compatible = "regulator-gpio";
75		regulator-name = "vsdc";
76		regulator-min-microvolt = <1800000>;
77		regulator-max-microvolt = <3300000>;
78		regulator-boot-on;
79
80		gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>;
81		gpios-states = <0>;
82		states = <1800000 0x1
83			  3300000 0x0>;
84		enable-active-high;
85	};
86
87	mdio {
88		#address-cells = <1>;
89		#size-cells = <0>;
90
91		eth_phy1: ethernet-phy@1 {
92			reg = <1>;
93		};
94	};
95};
96
97&comphy {
98	max-lanes = <3>;
99	phy0 {
100		phy-type = <COMPHY_TYPE_SGMII1>;
101		phy-speed = <COMPHY_SPEED_3_125G>;
102	};
103
104	phy1 {
105		phy-type = <COMPHY_TYPE_PEX0>;
106		phy-speed = <COMPHY_SPEED_5G>;
107	};
108
109	phy2 {
110		phy-type = <COMPHY_TYPE_USB3_HOST0>;
111		phy-speed = <COMPHY_SPEED_5G>;
112	};
113};
114
115&eth0 {
116	status = "okay";
117	pinctrl-names = "default";
118	pinctrl-0 = <&rgmii_pins>, <&smi_pins>;
119	phy-mode = "rgmii";
120	phy = <&eth_phy1>;
121};
122
123&i2c0 {
124	pinctrl-names = "default";
125	pinctrl-0 = <&i2c1_pins>;
126	status = "okay";
127	#address-cells = <1>;
128	#size-cells = <0>;
129
130	rtc@6f {
131		compatible = "microchip,mcp7941x";
132		reg = <0x6f>;
133	};
134};
135
136&sdhci1 {
137	wp-inverted;
138	bus-width = <4>;
139	cd-gpios = <&gpionb 10 GPIO_ACTIVE_HIGH>;
140	vqmmc-supply = <&vsdc_reg>;
141	marvell,pad-type = "sd";
142	status = "okay";
143};
144
145&pinctrl_nb {
146	spi_cs1_pins: spi-cs1-pins {
147		groups = "spi_cs1";
148		function = "spi";
149	};
150};
151
152&spi0 {
153	status = "okay";
154	pinctrl-names = "default";
155	pinctrl-0 = <&spi_cs1_pins>;
156	assigned-clocks = <&nb_periph_clk 7>;
157	assigned-clock-parents = <&tbg 1>;
158	assigned-clock-rates = <20000000>;
159
160	spi-flash@0 {
161		#address-cells = <1>;
162		#size-cells = <1>;
163		compatible = "st,s25fl064l", "jedec,spi-nor";
164		reg = <0>;
165		spi-max-frequency = <20000000>;
166		m25p,fast-read;
167
168		partitions {
169			compatible = "fixed-partitions";
170			#address-cells = <1>;
171			#size-cells = <1>;
172
173			partition@0 {
174				label = "secure-firmware";
175				reg = <0x0 0x20000>;
176			};
177
178			partition@20000 {
179				label = "a53-firmware";
180				reg = <0x20000 0x160000>;
181			};
182
183			partition@180000 {
184				label = "u-boot-env";
185				reg = <0x180000 0x10000>;
186			};
187
188			partition@190000 {
189				label = "Rescue system";
190				reg = <0x190000 0x660000>;
191			};
192
193			partition@7f0000 {
194				label = "dtb";
195				reg = <0x7f0000 0x10000>;
196			};
197		};
198	};
199
200	moxtet@1 {
201		#address-cells = <1>;
202		#size-cells = <0>;
203		compatible = "cznic,moxtet";
204		reg = <1>;
205		reset-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
206		spi-max-frequency = <1000000>;
207		spi-cpol;
208		spi-cpha;
209	};
210};
211
212&uart0 {
213	pinctrl-names = "default";
214	pinctrl-0 = <&uart1_pins>;
215	status = "okay";
216};
217
218&usb2 {
219	status = "okay";
220};
221
222&usb3 {
223	vbus-supply = <&reg_usb3_vbus>;
224	status = "okay";
225};
226
227&pcie0 {
228	pinctrl-names = "default";
229	pinctrl-0 = <&pcie_pins>;
230	reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
231	status = "disabled";
232};
233