1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Device tree for the uDPU board.
4 * Based on Marvell Armada 3720 development board (DB-88F3720-DDR3)
5 * Copyright (C) 2016 Marvell
6 * Copyright (C) 2019 Methode Electronics
7 * Copyright (C) 2019 Telus
8 *
9 * Vladimir Vid <vladimir.vid@sartura.hr>
10 */
11
12/dts-v1/;
13
14#include <dt-bindings/gpio/gpio.h>
15#include "armada-372x.dtsi"
16
17/ {
18	model = "Methode uDPU Board";
19	compatible = "methode,udpu", "marvell,armada3720";
20
21	chosen {
22		stdout-path = "serial0:115200n8";
23	};
24
25	memory@0 {
26		device_type = "memory";
27		reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
28	};
29
30	leds {
31		pinctrl-names = "default";
32		compatible = "gpio-leds";
33
34		power1 {
35			label = "udpu:green:power";
36			gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
37		};
38
39		power2 {
40			label = "udpu:red:power";
41			gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
42		};
43
44		network1 {
45			label = "udpu:green:network";
46			gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
47		};
48
49		network2 {
50			label = "udpu:red:network";
51			gpios = <&gpionb 14 GPIO_ACTIVE_LOW>;
52		};
53
54		alarm1 {
55			label = "udpu:green:alarm";
56			gpios = <&gpionb 15 GPIO_ACTIVE_LOW>;
57		};
58
59		alarm2 {
60			label = "udpu:red:alarm";
61			gpios = <&gpionb 16 GPIO_ACTIVE_LOW>;
62		};
63	};
64
65	sfp_eth0: sfp-eth0 {
66		compatible = "sff,sfp";
67		i2c-bus = <&i2c0>;
68		los-gpio = <&gpiosb 2 GPIO_ACTIVE_HIGH>;
69		mod-def0-gpio = <&gpiosb 3 GPIO_ACTIVE_LOW>;
70		tx-disable-gpio = <&gpiosb 4 GPIO_ACTIVE_HIGH>;
71		tx-fault-gpio = <&gpiosb 5 GPIO_ACTIVE_HIGH>;
72		maximum-power-milliwatt = <3000>;
73	};
74
75	sfp_eth1: sfp-eth1 {
76		compatible = "sff,sfp";
77		i2c-bus = <&i2c1>;
78		los-gpio = <&gpiosb 7 GPIO_ACTIVE_HIGH>;
79		mod-def0-gpio = <&gpiosb 8 GPIO_ACTIVE_LOW>;
80		tx-disable-gpio = <&gpiosb 9 GPIO_ACTIVE_HIGH>;
81		tx-fault-gpio = <&gpiosb 10 GPIO_ACTIVE_HIGH>;
82		maximum-power-milliwatt = <3000>;
83	};
84};
85
86&sdhci0 {
87	status = "okay";
88	bus-width = <8>;
89	mmc-ddr-1_8v;
90	mmc-hs400-1_8v;
91	marvell,pad-type = "fixed-1-8v";
92	non-removable;
93	no-sd;
94	no-sdio;
95};
96
97&spi0 {
98	status = "okay";
99	pinctrl-names = "default";
100	pinctrl-0 = <&spi_quad_pins>;
101
102	m25p80@0 {
103		compatible = "jedec,spi-nor";
104		reg = <0>;
105		spi-max-frequency = <54000000>;
106
107		partitions {
108			compatible = "fixed-partitions";
109			#address-cells = <1>;
110			#size-cells = <1>;
111			/* only bootloader is located on the SPI */
112			partition@0 {
113				label = "uboot";
114				reg = <0 0x400000>;
115			};
116		};
117	};
118};
119
120&i2c0 {
121	status = "okay";
122	pinctrl-names = "default";
123	pinctrl-0 = <&i2c1_pins>;
124	/delete-property/mrvl,i2c-fast-mode;
125};
126
127&i2c1 {
128	status = "okay";
129	pinctrl-names = "default";
130	pinctrl-0 = <&i2c2_pins>;
131	/delete-property/mrvl,i2c-fast-mode;
132
133	lm75@48 {
134		status = "okay";
135		compatible = "lm75";
136		reg = <0x48>;
137	};
138
139	lm75@49 {
140		status = "okay";
141		compatible = "lm75";
142		reg = <0x49>;
143	};
144};
145
146&eth0 {
147	phy-mode = "sgmii";
148	status = "okay";
149	managed = "in-band-status";
150	phys = <&comphy1 0>;
151	sfp = <&sfp_eth0>;
152};
153
154&eth1 {
155	phy-mode = "sgmii";
156	status = "okay";
157	managed = "in-band-status";
158	phys = <&comphy0 1>;
159	sfp = <&sfp_eth1>;
160};
161
162&usb3 {
163	status = "okay";
164	phys = <&usb2_utmi_otg_phy>;
165	phy-names = "usb2-utmi-otg-phy";
166};
167
168&uart0 {
169	status = "okay";
170};
171