1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (c) 2017 Intel Corporation
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/x86-gpio.h>
9#include <dt-bindings/interrupt-router/intel-irq.h>
10
11/include/ "skeleton.dtsi"
12/include/ "rtc.dtsi"
13
14#include "tsc_timer.dtsi"
15#include "smbios.dtsi"
16
17/ {
18	model = "Intel Edison";
19	compatible = "intel,edison", "intel,tangier";
20
21	aliases {
22		serial0 = &serial0;
23		serial1 = &serial1;
24		serial2 = &serial2;
25	};
26
27	binman: binman {
28		multiple-images;
29	};
30
31	chosen {
32		stdout-path = &serial2;
33	};
34
35	cpus {
36		#address-cells = <1>;
37		#size-cells = <0>;
38
39		cpu@0 {
40			device_type = "cpu";
41			compatible = "cpu-x86";
42			reg = <0>;
43			intel,apic-id = <0>;
44		};
45
46		cpu@1 {
47			device_type = "cpu";
48			compatible = "cpu-x86";
49			reg = <1>;
50			intel,apic-id = <2>;
51		};
52	};
53
54	pci {
55		compatible = "pci-x86";
56		#address-cells = <3>;
57		#size-cells = <2>;
58		u-boot,dm-pre-reloc;
59		ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
60			  0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
61			  0x01000000 0x0 0x2000 0x2000 0 0xe000>;
62	};
63
64	serial0: serial@ff010080 {
65		compatible = "intel,mid-uart";
66		reg = <0xff010080 0x100>;
67		reg-shift = <0>;
68		clock-frequency = <29491200>;
69		current-speed = <115200>;
70	};
71
72	serial1: serial@ff010100 {
73		compatible = "intel,mid-uart";
74		reg = <0xff010100 0x100>;
75		reg-shift = <0>;
76		clock-frequency = <29491200>;
77		current-speed = <115200>;
78	};
79
80	serial2: serial@ff010180 {
81		compatible = "intel,mid-uart";
82		reg = <0xff010180 0x100>;
83		reg-shift = <0>;
84		clock-frequency = <29491200>;
85		current-speed = <115200>;
86	};
87
88	emmc: mmc@ff3fc000 {
89		compatible = "intel,sdhci-tangier";
90		reg = <0xff3fc000 0x1000>;
91		non-removable;
92	};
93
94	sdcard: mmc@ff3fa000 {
95		compatible = "intel,sdhci-tangier";
96		reg = <0xff3fa000 0x1000>;
97		/*
98		 * In the disconnected state of the SD Card Detection pin
99		 * the read value is always the same and inverted to what
100		 * we are expecting in the code.
101		 */
102		cd-inverted;
103	};
104
105	pmu: power@ff00b000 {
106		compatible = "intel,pmu-mid";
107		reg = <0xff00b000 0x1000>;
108	};
109
110	scu: ipc@ff009000 {
111		compatible = "intel,scu-ipc";
112		reg = <0xff009000 0x1000>;
113	};
114
115	usb: usb@f9100000 {
116		compatible = "intel,tangier-dwc3";
117		#address-cells = <1>;
118		#size-cells = <1>;
119
120		dwc3: dwc3 {
121			reg = <0xf9100000 0x100000>;
122			maximum-speed = "high-speed";
123			dr_mode = "peripheral";
124		};
125	};
126
127	watchdog: wdt@0 {
128		compatible = "intel,tangier-wdt";
129	};
130
131	reset {
132		compatible = "intel,reset-tangier";
133		u-boot,dm-pre-reloc;
134	};
135
136	pinctrl {
137		compatible = "intel,pinctrl-tangier";
138		reg = <0xff0c0000 0x8000>;
139
140		/*
141		 * Disconnect SD card detection pin, so it won't affect
142		 * the reality on two different PCB designs where it's
143		 * using the opposite signaling: Edison/Arduino uses
144		 * Active Low, while SparkFun went with Active High.
145		 */
146		sd_cd@0 {
147			pad-offset = <37>;
148			mode-func = <3>;
149		};
150
151		/*
152		 * Initial configuration came from the firmware.
153		 * Which quite likely has been used in the phones, where I2C #8,
154		 * that is not part of Atom peripheral, is in use.
155		 * Thus we need to override the leftover.
156		 */
157		i2c6_scl@0 {
158			pad-offset = <111>;
159			mode-func = <1>;
160			protected;
161		};
162		i2c6_sda@0 {
163			pad-offset = <112>;
164			mode-func = <1>;
165			protected;
166		};
167	};
168};
169
170&binman {
171	u-boot-edison {
172		filename = "u-boot-edison.img";
173
174		/* This is the OSIP */
175		blob {
176			filename = "edison-osip.dat";
177		};
178
179		u-boot {
180			offset = <0x200>;
181		};
182
183		u-boot-env {
184			offset = <0x200200>;
185			filename = "edison-environment.txt";
186			size = <0x10000>;
187			fill-byte = [ff];
188		};
189
190		u-boot-env2 {
191			type = "u-boot-env";
192			offset = <0x500200>;
193			filename = "edison-environment.txt";
194			size = <0x10000>;
195			fill-byte = [ff];
196		};
197	};
198};
199