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