1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos4210 based Origen board device tree source
4 *
5 * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 * Copyright (c) 2010-2011 Linaro Ltd.
8 *		www.linaro.org
9 *
10 * Device tree source file for Insignal's Origen board which is based on
11 * Samsung's Exynos4210 SoC.
12 */
13
14/dts-v1/;
15#include "exynos4210.dtsi"
16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/input/input.h>
18#include <dt-bindings/leds/common.h>
19#include "exynos-mfc-reserved-memory.dtsi"
20
21/ {
22	model = "Insignal Origen evaluation board based on Exynos4210";
23	compatible = "insignal,origen", "samsung,exynos4210", "samsung,exynos4";
24
25	memory@40000000 {
26		device_type = "memory";
27		reg = <0x40000000 0x10000000
28		       0x50000000 0x10000000
29		       0x60000000 0x10000000
30		       0x70000000 0x10000000>;
31	};
32
33	chosen {
34		bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
35		stdout-path = "serial2:115200n8";
36	};
37
38	mmc_reg: voltage-regulator {
39		compatible = "regulator-fixed";
40		regulator-name = "VMEM_VDD_2.8V";
41		regulator-min-microvolt = <2800000>;
42		regulator-max-microvolt = <2800000>;
43		gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
44		enable-active-high;
45	};
46
47	gpio-keys {
48		compatible = "gpio-keys";
49
50		key-up {
51			label = "Up";
52			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
53			linux,code = <KEY_UP>;
54			wakeup-source;
55		};
56
57		key-down {
58			label = "Down";
59			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
60			linux,code = <KEY_DOWN>;
61			wakeup-source;
62		};
63
64		key-back {
65			label = "Back";
66			gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
67			linux,code = <KEY_BACK>;
68			wakeup-source;
69		};
70
71		key-home {
72			label = "Home";
73			gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
74			linux,code = <KEY_HOME>;
75			wakeup-source;
76		};
77
78		key-menu {
79			label = "Menu";
80			gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
81			linux,code = <KEY_MENU>;
82			wakeup-source;
83		};
84	};
85
86	leds {
87		compatible = "gpio-leds";
88		led-status {
89			gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
90			function = LED_FUNCTION_HEARTBEAT;
91			linux,default-trigger = "heartbeat";
92		};
93	};
94
95	fixed-rate-clocks {
96		xxti {
97			compatible = "samsung,clock-xxti";
98			clock-frequency = <0>;
99		};
100
101		xusbxti {
102			compatible = "samsung,clock-xusbxti";
103			clock-frequency = <24000000>;
104		};
105
106		pmic_ap_clk: pmic-ap-clk {
107			/* Workaround for missing clock on max8997 PMIC */
108			compatible = "fixed-clock";
109			#clock-cells = <0>;
110			clock-frequency = <32768>;
111		};
112	};
113
114	display-timings {
115		native-mode = <&timing0>;
116		timing0: timing {
117			clock-frequency = <47500000>;
118			hactive = <1024>;
119			vactive = <600>;
120			hfront-porch = <64>;
121			hback-porch = <16>;
122			hsync-len = <48>;
123			vback-porch = <64>;
124			vfront-porch = <16>;
125			vsync-len = <3>;
126		};
127	};
128};
129
130&cpu0 {
131	cpu0-supply = <&buck1_reg>;
132};
133
134&cpu_thermal {
135	cooling-maps {
136		map0 {
137			/* Corresponds to 800MHz */
138			cooling-device = <&cpu0 2 2>;
139		};
140		map1 {
141			/* Corresponds to 200MHz */
142			cooling-device = <&cpu0 4 4>;
143		};
144	};
145};
146
147&exynos_usbphy {
148	status = "okay";
149};
150
151&fimd {
152	pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_out>;
153	pinctrl-names = "default";
154	status = "okay";
155};
156
157&gpu {
158	mali-supply = <&buck3_reg>;
159	status = "okay";
160};
161
162&hsotg {
163	vusb_d-supply = <&ldo3_reg>;
164	vusb_a-supply = <&ldo8_reg>;
165	dr_mode = "peripheral";
166	status = "okay";
167};
168
169&i2c_0 {
170	status = "okay";
171	samsung,i2c-sda-delay = <100>;
172	samsung,i2c-max-bus-freq = <20000>;
173	pinctrl-0 = <&i2c0_bus>;
174	pinctrl-names = "default";
175
176	pmic@66 {
177		compatible = "maxim,max8997-pmic";
178		reg = <0x66>;
179		interrupt-parent = <&gpx0>;
180		interrupts = <4 IRQ_TYPE_NONE>, <3 IRQ_TYPE_NONE>;
181		pinctrl-names = "default";
182		pinctrl-0 = <&max8997_irq>;
183
184		max8997,pmic-buck1-dvs-voltage = <1350000>;
185		max8997,pmic-buck2-dvs-voltage = <1100000>;
186		max8997,pmic-buck5-dvs-voltage = <1200000>;
187
188		regulators {
189			ldo1_reg: LDO1 {
190				regulator-name = "VDD_ABB_3.3V";
191				regulator-min-microvolt = <3300000>;
192				regulator-max-microvolt = <3300000>;
193			};
194
195			ldo2_reg: LDO2 {
196				regulator-name = "VDD_ALIVE_1.1V";
197				regulator-min-microvolt = <1100000>;
198				regulator-max-microvolt = <1100000>;
199				regulator-always-on;
200			};
201
202			ldo3_reg: LDO3 {
203				regulator-name = "VMIPI_1.1V";
204				regulator-min-microvolt = <1100000>;
205				regulator-max-microvolt = <1100000>;
206			};
207
208			ldo4_reg: LDO4 {
209				regulator-name = "VDD_RTC_1.8V";
210				regulator-min-microvolt = <1800000>;
211				regulator-max-microvolt = <1800000>;
212				regulator-always-on;
213			};
214
215			ldo6_reg: LDO6 {
216				regulator-name = "VMIPI_1.8V";
217				regulator-min-microvolt = <1800000>;
218				regulator-max-microvolt = <1800000>;
219				regulator-always-on;
220			};
221
222			ldo7_reg: LDO7 {
223				regulator-name = "VDD_AUD_1.8V";
224				regulator-min-microvolt = <1800000>;
225				regulator-max-microvolt = <1800000>;
226			};
227
228			ldo8_reg: LDO8 {
229				regulator-name = "VADC_3.3V";
230				regulator-min-microvolt = <3300000>;
231				regulator-max-microvolt = <3300000>;
232			};
233
234			ldo9_reg: LDO9 {
235				regulator-name = "DVDD_SWB_2.8V";
236				regulator-min-microvolt = <2800000>;
237				regulator-max-microvolt = <2800000>;
238				regulator-always-on;
239			};
240
241			ldo10_reg: LDO10 {
242				regulator-name = "VDD_PLL_1.1V";
243				regulator-min-microvolt = <1100000>;
244				regulator-max-microvolt = <1100000>;
245				regulator-always-on;
246			};
247
248			ldo11_reg: LDO11 {
249				regulator-name = "VDD_AUD_3V";
250				regulator-min-microvolt = <3000000>;
251				regulator-max-microvolt = <3000000>;
252			};
253
254			ldo14_reg: LDO14 {
255				regulator-name = "AVDD18_SWB_1.8V";
256				regulator-min-microvolt = <1800000>;
257				regulator-max-microvolt = <1800000>;
258				regulator-always-on;
259			};
260
261			ldo17_reg: LDO17 {
262				regulator-name = "VDD_SWB_3.3V";
263				regulator-min-microvolt = <3300000>;
264				regulator-max-microvolt = <3300000>;
265				regulator-always-on;
266			};
267
268			ldo21_reg: LDO21 {
269				regulator-name = "VDD_MIF_1.2V";
270				regulator-min-microvolt = <1200000>;
271				regulator-max-microvolt = <1200000>;
272				regulator-always-on;
273			};
274
275			buck1_reg: BUCK1 {
276				regulator-name = "VDD_ARM_1.2V";
277				regulator-min-microvolt = <950000>;
278				regulator-max-microvolt = <1350000>;
279				regulator-always-on;
280				regulator-boot-on;
281			};
282
283			buck2_reg: BUCK2 {
284				regulator-name = "VDD_INT_1.1V";
285				regulator-min-microvolt = <900000>;
286				regulator-max-microvolt = <1100000>;
287				regulator-always-on;
288				regulator-boot-on;
289			};
290
291			buck3_reg: BUCK3 {
292				regulator-name = "VDD_G3D_1.1V";
293				regulator-min-microvolt = <900000>;
294				regulator-max-microvolt = <1100000>;
295			};
296
297			buck5_reg: BUCK5 {
298				regulator-name = "VDDQ_M1M2_1.2V";
299				regulator-min-microvolt = <1200000>;
300				regulator-max-microvolt = <1200000>;
301				regulator-always-on;
302			};
303
304			buck7_reg: BUCK7 {
305				regulator-name = "VDD_LCD_3.3V";
306				regulator-min-microvolt = <3300000>;
307				regulator-max-microvolt = <3300000>;
308				regulator-boot-on;
309				regulator-always-on;
310			};
311
312			EN32KHZ_AP {
313				regulator-name = "EN32KHZ_AP";
314				regulator-always-on;
315			};
316		};
317	};
318};
319
320&pinctrl_1 {
321	max8997_irq: max8997-irq-pins {
322		samsung,pins = "gpx0-3", "gpx0-4";
323		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
324	};
325};
326
327&sdhci_0 {
328	bus-width = <4>;
329	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
330	pinctrl-names = "default";
331	vmmc-supply = <&mmc_reg>;
332	status = "okay";
333};
334
335&sdhci_2 {
336	bus-width = <4>;
337	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
338	pinctrl-names = "default";
339	vmmc-supply = <&mmc_reg>;
340	status = "okay";
341};
342
343&serial_0 {
344	status = "okay";
345};
346
347&serial_1 {
348	status = "okay";
349};
350
351&serial_2 {
352	status = "okay";
353};
354
355&serial_3 {
356	status = "okay";
357};
358
359&rtc {
360	status = "okay";
361	clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
362	clock-names = "rtc", "rtc_src";
363};
364
365&tmu {
366	status = "okay";
367};
368