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