1cc21ed62SMarek Vasut/*
2cc21ed62SMarek Vasut * Copyright (C) 2015 Altera Corporation <www.altera.com>
3cc21ed62SMarek Vasut *
4cc21ed62SMarek Vasut * This program is free software; you can redistribute it and/or modify
5cc21ed62SMarek Vasut * it under the terms of the GNU General Public License as published by
6cc21ed62SMarek Vasut * the Free Software Foundation; either version 2 of the License, or
7cc21ed62SMarek Vasut * (at your option) any later version.
8cc21ed62SMarek Vasut *
9cc21ed62SMarek Vasut * This program is distributed in the hope that it will be useful,
10cc21ed62SMarek Vasut * but WITHOUT ANY WARRANTY; without even the implied warranty of
11cc21ed62SMarek Vasut * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12cc21ed62SMarek Vasut * GNU General Public License for more details.
13cc21ed62SMarek Vasut *
14cc21ed62SMarek Vasut * You should have received a copy of the GNU General Public License
15cc21ed62SMarek Vasut * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16cc21ed62SMarek Vasut */
17cc21ed62SMarek Vasut#include "socfpga_arria10_socdk_sdmmc_handoff.dtsi"
18cc21ed62SMarek Vasut
19cc21ed62SMarek Vasut/ {
20cc21ed62SMarek Vasut	model = "Altera SOCFPGA Arria 10";
21cc21ed62SMarek Vasut	compatible = "altr,socfpga-arria10", "altr,socfpga";
22cc21ed62SMarek Vasut
23cc21ed62SMarek Vasut	aliases {
24cc21ed62SMarek Vasut		ethernet0 = &gmac0;
25cc21ed62SMarek Vasut		serial0 = &uart1;
26c2950804SMarek Vasut		i2c0 = &i2c1;
27cc21ed62SMarek Vasut	};
28cc21ed62SMarek Vasut
29cc21ed62SMarek Vasut	chosen {
30cc21ed62SMarek Vasut		bootargs = "earlyprintk";
31cc21ed62SMarek Vasut		stdout-path = "serial0:115200n8";
32cc21ed62SMarek Vasut	};
33cc21ed62SMarek Vasut
34cc21ed62SMarek Vasut	memory@0 {
35cc21ed62SMarek Vasut		name = "memory";
36cc21ed62SMarek Vasut		device_type = "memory";
37cc21ed62SMarek Vasut		reg = <0x0 0x40000000>; /* 1GB */
38df78f016SMarek Vasut		u-boot,dm-pre-reloc;
39cc21ed62SMarek Vasut	};
40cc21ed62SMarek Vasut
41cc21ed62SMarek Vasut	a10leds {
42cc21ed62SMarek Vasut		compatible = "gpio-leds";
43cc21ed62SMarek Vasut
44cc21ed62SMarek Vasut		a10sr_led0 {
45cc21ed62SMarek Vasut			label = "a10sr-led0";
46cc21ed62SMarek Vasut			gpios = <&a10sr_gpio 0 1>;
47cc21ed62SMarek Vasut		};
48cc21ed62SMarek Vasut
49cc21ed62SMarek Vasut		a10sr_led1 {
50cc21ed62SMarek Vasut			label = "a10sr-led1";
51cc21ed62SMarek Vasut			gpios = <&a10sr_gpio 1 1>;
52cc21ed62SMarek Vasut		};
53cc21ed62SMarek Vasut
54cc21ed62SMarek Vasut		a10sr_led2 {
55cc21ed62SMarek Vasut			label = "a10sr-led2";
56cc21ed62SMarek Vasut			gpios = <&a10sr_gpio 2 1>;
57cc21ed62SMarek Vasut		};
58cc21ed62SMarek Vasut
59cc21ed62SMarek Vasut		a10sr_led3 {
60cc21ed62SMarek Vasut			label = "a10sr-led3";
61cc21ed62SMarek Vasut			gpios = <&a10sr_gpio 3 1>;
62cc21ed62SMarek Vasut		};
63cc21ed62SMarek Vasut	};
64cc21ed62SMarek Vasut
65cc21ed62SMarek Vasut	soc {
66cc21ed62SMarek Vasut		u-boot,dm-pre-reloc;
67cc21ed62SMarek Vasut	};
68cc21ed62SMarek Vasut};
69cc21ed62SMarek Vasut
70cc21ed62SMarek Vasut&gmac0 {
71cc21ed62SMarek Vasut	phy-mode = "rgmii";
72cc21ed62SMarek Vasut	phy-addr = <0xffffffff>; /* probe for phy addr */
73cc21ed62SMarek Vasut
74cc21ed62SMarek Vasut	/*
75cc21ed62SMarek Vasut	 * These skews assume the user's FPGA design is adding 600ps of delay
76cc21ed62SMarek Vasut	 * for TX_CLK on Arria 10.
77cc21ed62SMarek Vasut	 *
78cc21ed62SMarek Vasut	 * All skews are offset since hardware skew values for the ksz9031
79cc21ed62SMarek Vasut	 * range from a negative skew to a positive skew.
80cc21ed62SMarek Vasut	 * See the micrel-ksz90x1.txt Documentation file for details.
81cc21ed62SMarek Vasut	 */
82cc21ed62SMarek Vasut	txd0-skew-ps = <0>; /* -420ps */
83cc21ed62SMarek Vasut	txd1-skew-ps = <0>; /* -420ps */
84cc21ed62SMarek Vasut	txd2-skew-ps = <0>; /* -420ps */
85cc21ed62SMarek Vasut	txd3-skew-ps = <0>; /* -420ps */
86cc21ed62SMarek Vasut	rxd0-skew-ps = <420>; /* 0ps */
87cc21ed62SMarek Vasut	rxd1-skew-ps = <420>; /* 0ps */
88cc21ed62SMarek Vasut	rxd2-skew-ps = <420>; /* 0ps */
89cc21ed62SMarek Vasut	rxd3-skew-ps = <420>; /* 0ps */
90cc21ed62SMarek Vasut	txen-skew-ps = <0>; /* -420ps */
91cc21ed62SMarek Vasut	txc-skew-ps = <1860>; /* 960ps */
92cc21ed62SMarek Vasut	rxdv-skew-ps = <420>; /* 0ps */
93cc21ed62SMarek Vasut	rxc-skew-ps = <1680>; /* 780ps */
94cc21ed62SMarek Vasut	max-frame-size = <3800>;
95cc21ed62SMarek Vasut	status = "okay";
96cc21ed62SMarek Vasut};
97cc21ed62SMarek Vasut
98cc21ed62SMarek Vasut&gpio1 {
99cc21ed62SMarek Vasut	status = "okay";
100cc21ed62SMarek Vasut};
101cc21ed62SMarek Vasut
102cc21ed62SMarek Vasut&spi1 {
103cc21ed62SMarek Vasut	status = "okay";
104cc21ed62SMarek Vasut
105cc21ed62SMarek Vasut	resource-manager@0 {
106cc21ed62SMarek Vasut		compatible = "altr,a10sr";
107cc21ed62SMarek Vasut		reg = <0>;
108cc21ed62SMarek Vasut		spi-max-frequency = <100000>;
109cc21ed62SMarek Vasut		/* low-level active IRQ at GPIO1_5 */
110cc21ed62SMarek Vasut		interrupt-parent = <&portb>;
111cc21ed62SMarek Vasut		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
112cc21ed62SMarek Vasut		interrupt-controller;
113cc21ed62SMarek Vasut		#interrupt-cells = <2>;
114cc21ed62SMarek Vasut
115cc21ed62SMarek Vasut		a10sr_gpio: gpio-controller {
116cc21ed62SMarek Vasut			compatible = "altr,a10sr-gpio";
117cc21ed62SMarek Vasut			gpio-controller;
118cc21ed62SMarek Vasut			#gpio-cells = <2>;
119cc21ed62SMarek Vasut		};
120cc21ed62SMarek Vasut
121cc21ed62SMarek Vasut		a10sr_rst: reset-controller {
122cc21ed62SMarek Vasut			compatible = "altr,a10sr-reset";
123cc21ed62SMarek Vasut			#reset-cells = <1>;
124cc21ed62SMarek Vasut		};
125cc21ed62SMarek Vasut	};
126cc21ed62SMarek Vasut};
127cc21ed62SMarek Vasut
128cc21ed62SMarek Vasut&i2c1 {
129cc21ed62SMarek Vasut	status = "okay";
130cc21ed62SMarek Vasut
131cc21ed62SMarek Vasut	/*
132cc21ed62SMarek Vasut	 * adjust the falling times to decrease the i2c frequency to 50Khz
133cc21ed62SMarek Vasut	 * because the LCD module does not work at the standard 100Khz
134cc21ed62SMarek Vasut	 */
135cc21ed62SMarek Vasut	clock-frequency = <100000>;
136cc21ed62SMarek Vasut	i2c-sda-falling-time-ns = <6000>;
137cc21ed62SMarek Vasut	i2c-scl-falling-time-ns = <6000>;
138cc21ed62SMarek Vasut
139cc21ed62SMarek Vasut	eeprom@51 {
140cc21ed62SMarek Vasut		compatible = "atmel,24c32";
141cc21ed62SMarek Vasut		reg = <0x51>;
142cc21ed62SMarek Vasut		pagesize = <32>;
143cc21ed62SMarek Vasut	};
144cc21ed62SMarek Vasut
145cc21ed62SMarek Vasut	rtc@68 {
146cc21ed62SMarek Vasut		compatible = "dallas,ds1339";
147cc21ed62SMarek Vasut		reg = <0x68>;
148cc21ed62SMarek Vasut	};
149cc21ed62SMarek Vasut
150cc21ed62SMarek Vasut	ltc@5c {
151cc21ed62SMarek Vasut		compatible = "ltc2977";
152cc21ed62SMarek Vasut		reg = <0x5c>;
153cc21ed62SMarek Vasut	};
154cc21ed62SMarek Vasut};
155cc21ed62SMarek Vasut
156cc21ed62SMarek Vasut&uart1 {
157cc21ed62SMarek Vasut	u-boot,dm-pre-reloc;
158cc21ed62SMarek Vasut	status = "okay";
159cc21ed62SMarek Vasut};
160cc21ed62SMarek Vasut
161cc21ed62SMarek Vasut&usb0 {
162cc21ed62SMarek Vasut	status = "okay";
163cc21ed62SMarek Vasut	disable-over-current;
164cc21ed62SMarek Vasut};
165cc21ed62SMarek Vasut
166cc21ed62SMarek Vasut&watchdog1 {
167cc21ed62SMarek Vasut	status = "okay";
168cc21ed62SMarek Vasut};
169*ccc97432SMarek Vasut
170*ccc97432SMarek Vasut/* Clock available early */
171*ccc97432SMarek Vasut&main_periph_ref_clk {
172*ccc97432SMarek Vasut	u-boot,dm-pre-reloc;
173*ccc97432SMarek Vasut};
174*ccc97432SMarek Vasut
175*ccc97432SMarek Vasut&l4_mp_clk {
176*ccc97432SMarek Vasut	u-boot,dm-pre-reloc;
177*ccc97432SMarek Vasut};
178*ccc97432SMarek Vasut
179*ccc97432SMarek Vasut&l4_sp_clk {
180*ccc97432SMarek Vasut	u-boot,dm-pre-reloc;
181*ccc97432SMarek Vasut};
182