blob: 1f534c0c65f7387f98fbbec5e51980a8d6da8dc6 [file] [log] [blame]
Vladimir Vid32c9e1c2019-01-28 17:27:58 +01001// 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
Pali Rohár0934ddd2022-02-14 11:34:30 +01006 * Copyright (C) 2019 Methode Electronics
7 * Copyright (C) 2019 Telus
Vladimir Vid32c9e1c2019-01-28 17:27:58 +01008 *
9 * Vladimir Vid <vladimir.vid@sartura.hr>
10 */
11
12/dts-v1/;
13
Pali Rohár0934ddd2022-02-14 11:34:30 +010014#include <dt-bindings/gpio/gpio.h>
15#include "armada-372x.dtsi"
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010016
17/ {
18 model = "Methode uDPU Board";
Pali Rohár0934ddd2022-02-14 11:34:30 +010019 compatible = "methode,udpu", "marvell,armada3720";
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010020
21 chosen {
22 stdout-path = "serial0:115200n8";
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010023 };
24
25 memory@0 {
26 device_type = "memory";
27 reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
28 };
29
Pali Rohár0934ddd2022-02-14 11:34:30 +010030 leds {
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010031 pinctrl-names = "default";
Pali Rohár0934ddd2022-02-14 11:34:30 +010032 compatible = "gpio-leds";
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010033
Pali Rohár0934ddd2022-02-14 11:34:30 +010034 power1 {
35 label = "udpu:green:power";
36 gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
37 };
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010038
Pali Rohár0934ddd2022-02-14 11:34:30 +010039 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 };
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010063 };
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>;
Pali Rohár0934ddd2022-02-14 11:34:30 +010072 maximum-power-milliwatt = <3000>;
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010073 };
74
75 sfp_eth1: sfp-eth1 {
76 compatible = "sff,sfp";
77 i2c-bus = <&i2c1>;
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010078 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>;
Pali Rohár0934ddd2022-02-14 11:34:30 +010082 maximum-power-milliwatt = <3000>;
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010083 };
84};
85
Pali Rohár0934ddd2022-02-14 11:34:30 +010086&sdhci0 {
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010087 status = "okay";
Pali Rohár0934ddd2022-02-14 11:34:30 +010088 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;
Vladimir Vid32c9e1c2019-01-28 17:27:58 +010095};
96
97&spi0 {
98 status = "okay";
99 pinctrl-names = "default";
100 pinctrl-0 = <&spi_quad_pins>;
101
Robert Marko9b02de82022-03-24 10:57:36 +0100102 spi-flash@0 {
Pali Rohár0934ddd2022-02-14 11:34:30 +0100103 compatible = "jedec,spi-nor";
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100104 reg = <0>;
Pali Rohár0934ddd2022-02-14 11:34:30 +0100105 spi-max-frequency = <54000000>;
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100106
Pali Rohár0934ddd2022-02-14 11:34:30 +0100107 partitions {
108 compatible = "fixed-partitions";
109 #address-cells = <1>;
110 #size-cells = <1>;
Robert Marko9b02de82022-03-24 10:57:36 +0100111
Pali Rohár0934ddd2022-02-14 11:34:30 +0100112 partition@0 {
Robert Marko9b02de82022-03-24 10:57:36 +0100113 label = "firmware";
114 reg = <0x0 0x180000>;
115 };
116
117 partition@180000 {
118 label = "u-boot-env";
119 reg = <0x180000 0x10000>;
Pali Rohár0934ddd2022-02-14 11:34:30 +0100120 };
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100121 };
122 };
123};
124
Pali Rohár0934ddd2022-02-14 11:34:30 +0100125&pinctrl_nb {
126 i2c1_recovery_pins: i2c1-recovery-pins {
127 groups = "i2c1";
128 function = "gpio";
129 };
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100130
Pali Rohár0934ddd2022-02-14 11:34:30 +0100131 i2c2_recovery_pins: i2c2-recovery-pins {
132 groups = "i2c2";
133 function = "gpio";
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100134 };
135};
136
Pali Rohár0934ddd2022-02-14 11:34:30 +0100137&i2c0 {
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100138 status = "okay";
Pali Rohár0934ddd2022-02-14 11:34:30 +0100139 pinctrl-names = "default", "recovery";
140 pinctrl-0 = <&i2c1_pins>;
141 pinctrl-1 = <&i2c1_recovery_pins>;
142 /delete-property/mrvl,i2c-fast-mode;
143 scl-gpios = <&gpionb 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
144 sda-gpios = <&gpionb 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
145};
146
147&i2c1 {
148 status = "okay";
149 pinctrl-names = "default", "recovery";
150 pinctrl-0 = <&i2c2_pins>;
151 pinctrl-1 = <&i2c2_recovery_pins>;
152 /delete-property/mrvl,i2c-fast-mode;
153 scl-gpios = <&gpionb 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
154 sda-gpios = <&gpionb 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
155
Robert Marko9b02de82022-03-24 10:57:36 +0100156 nct375@48 {
Pali Rohár0934ddd2022-02-14 11:34:30 +0100157 status = "okay";
Robert Marko9b02de82022-03-24 10:57:36 +0100158 compatible = "ti,tmp75c";
Pali Rohár0934ddd2022-02-14 11:34:30 +0100159 reg = <0x48>;
160 };
161
Robert Marko9b02de82022-03-24 10:57:36 +0100162 nct375@49 {
Pali Rohár0934ddd2022-02-14 11:34:30 +0100163 status = "okay";
Robert Marko9b02de82022-03-24 10:57:36 +0100164 compatible = "ti,tmp75c";
Pali Rohár0934ddd2022-02-14 11:34:30 +0100165 reg = <0x49>;
166 };
167};
168
169&eth0 {
170 phy-mode = "sgmii";
171 status = "okay";
172 managed = "in-band-status";
173 phys = <&comphy1 0>;
174 sfp = <&sfp_eth0>;
175};
176
177&eth1 {
178 phy-mode = "sgmii";
179 status = "okay";
180 managed = "in-band-status";
181 phys = <&comphy0 1>;
182 sfp = <&sfp_eth1>;
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100183};
184
185&usb3 {
186 status = "okay";
Pali Rohár0934ddd2022-02-14 11:34:30 +0100187 phys = <&usb2_utmi_otg_phy>;
188 phy-names = "usb2-utmi-otg-phy";
189};
190
191&uart0 {
192 status = "okay";
Vladimir Vid32c9e1c2019-01-28 17:27:58 +0100193};