1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Samsung's Exynos4412 based SMDK board device tree source
4 *
5 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
6 *		http://www.samsung.com
7 *
8 * Device tree source file for Samsung's SMDK4412 board which is based on
9 * Samsung's Exynos4412 SoC.
10 */
11
12/dts-v1/;
13#include "exynos4412.dtsi"
14#include "exynos-mfc-reserved-memory.dtsi"
15
16/ {
17	model = "Samsung SMDK evaluation board based on Exynos4412";
18	compatible = "samsung,smdk4412", "samsung,exynos4412", "samsung,exynos4";
19
20	memory@40000000 {
21		device_type = "memory";
22		reg = <0x40000000 0x40000000>;
23	};
24
25	chosen {
26		bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
27		stdout-path = "serial1:115200n8";
28	};
29
30	fixed-rate-clocks {
31		xxti {
32			compatible = "samsung,clock-xxti";
33			clock-frequency = <0>;
34		};
35
36		xusbxti {
37			compatible = "samsung,clock-xusbxti";
38			clock-frequency = <24000000>;
39		};
40
41		pmic_ap_clk: pmic-ap-clk {
42			/* Workaround for missing clock on PMIC */
43			compatible = "fixed-clock";
44			#clock-cells = <0>;
45			clock-frequency = <32768>;
46		};
47	};
48};
49
50&cpu_thermal {
51	cooling-maps {
52		cooling_map0: map0 {
53			/* Corresponds to 800MHz at freq_table */
54			cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
55					 <&cpu2 7 7>, <&cpu3 7 7>;
56		};
57		cooling_map1: map1 {
58			/* Corresponds to 200MHz at freq_table */
59			cooling-device = <&cpu0 13 13>, <&cpu1 13 13>,
60					 <&cpu2 13 13>, <&cpu3 13 13>;
61		};
62	};
63};
64
65&keypad {
66	samsung,keypad-num-rows = <3>;
67	samsung,keypad-num-columns = <8>;
68	linux,keypad-no-autorepeat;
69	wakeup-source;
70	pinctrl-0 = <&keypad_rows &keypad_cols>;
71	pinctrl-names = "default";
72	status = "okay";
73
74	key-1 {
75		keypad,row = <1>;
76		keypad,column = <3>;
77		linux,code = <2>;
78	};
79
80	key-2 {
81		keypad,row = <1>;
82		keypad,column = <4>;
83		linux,code = <3>;
84	};
85
86	key-3 {
87		keypad,row = <1>;
88		keypad,column = <5>;
89		linux,code = <4>;
90	};
91
92	key-4 {
93		keypad,row = <1>;
94		keypad,column = <6>;
95		linux,code = <5>;
96	};
97
98	key-5 {
99		keypad,row = <1>;
100		keypad,column = <7>;
101		linux,code = <6>;
102	};
103
104	key-A {
105		keypad,row = <2>;
106		keypad,column = <6>;
107		linux,code = <30>;
108	};
109
110	key-B {
111		keypad,row = <2>;
112		keypad,column = <7>;
113		linux,code = <48>;
114	};
115
116	key-C {
117		keypad,row = <0>;
118		keypad,column = <5>;
119		linux,code = <46>;
120	};
121
122	key-D {
123		keypad,row = <2>;
124		keypad,column = <5>;
125		linux,code = <32>;
126	};
127
128	key-E {
129		keypad,row = <0>;
130		keypad,column = <7>;
131		linux,code = <18>;
132	};
133};
134
135&pinctrl_1 {
136	keypad_rows: keypad-rows {
137		samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
138		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
139		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
140		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
141	};
142
143	keypad_cols: keypad-cols {
144		samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3",
145			       "gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7";
146		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
147		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
148		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
149	};
150};
151
152&rtc {
153	clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
154	clock-names = "rtc", "rtc_src";
155};
156
157&sdhci_2 {
158	bus-width = <4>;
159	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
160	pinctrl-names = "default";
161	status = "okay";
162};
163
164&serial_0 {
165	status = "okay";
166};
167
168&serial_1 {
169	status = "okay";
170};
171
172&serial_2 {
173	status = "okay";
174};
175
176&serial_3 {
177	status = "okay";
178};
179