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	aliases {
26		mmc0 = &sdhci_2;
27	};
28
29	chosen {
30		bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M init=/linuxrc";
31		stdout-path = "serial1:115200n8";
32	};
33
34	fixed-rate-clocks {
35		xxti {
36			compatible = "samsung,clock-xxti";
37			clock-frequency = <0>;
38		};
39
40		xusbxti {
41			compatible = "samsung,clock-xusbxti";
42			clock-frequency = <24000000>;
43		};
44
45		pmic_ap_clk: pmic-ap-clk {
46			/* Workaround for missing clock on PMIC */
47			compatible = "fixed-clock";
48			#clock-cells = <0>;
49			clock-frequency = <32768>;
50		};
51	};
52};
53
54&cpu_thermal {
55	cooling-maps {
56		cooling_map0: map0 {
57			/* Corresponds to 800MHz at freq_table */
58			cooling-device = <&cpu0 7 7>, <&cpu1 7 7>,
59					 <&cpu2 7 7>, <&cpu3 7 7>;
60		};
61		cooling_map1: map1 {
62			/* Corresponds to 200MHz at freq_table */
63			cooling-device = <&cpu0 13 13>, <&cpu1 13 13>,
64					 <&cpu2 13 13>, <&cpu3 13 13>;
65		};
66	};
67};
68
69&keypad {
70	samsung,keypad-num-rows = <3>;
71	samsung,keypad-num-columns = <8>;
72	linux,keypad-no-autorepeat;
73	wakeup-source;
74	pinctrl-0 = <&keypad_rows &keypad_cols>;
75	pinctrl-names = "default";
76	status = "okay";
77
78	key-1 {
79		keypad,row = <1>;
80		keypad,column = <3>;
81		linux,code = <2>;
82	};
83
84	key-2 {
85		keypad,row = <1>;
86		keypad,column = <4>;
87		linux,code = <3>;
88	};
89
90	key-3 {
91		keypad,row = <1>;
92		keypad,column = <5>;
93		linux,code = <4>;
94	};
95
96	key-4 {
97		keypad,row = <1>;
98		keypad,column = <6>;
99		linux,code = <5>;
100	};
101
102	key-5 {
103		keypad,row = <1>;
104		keypad,column = <7>;
105		linux,code = <6>;
106	};
107
108	key-A {
109		keypad,row = <2>;
110		keypad,column = <6>;
111		linux,code = <30>;
112	};
113
114	key-B {
115		keypad,row = <2>;
116		keypad,column = <7>;
117		linux,code = <48>;
118	};
119
120	key-C {
121		keypad,row = <0>;
122		keypad,column = <5>;
123		linux,code = <46>;
124	};
125
126	key-D {
127		keypad,row = <2>;
128		keypad,column = <5>;
129		linux,code = <32>;
130	};
131
132	key-E {
133		keypad,row = <0>;
134		keypad,column = <7>;
135		linux,code = <18>;
136	};
137};
138
139&pinctrl_1 {
140	keypad_rows: keypad-rows-pins {
141		samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
142		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
143		samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
144		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
145	};
146
147	keypad_cols: keypad-cols-pins {
148		samsung,pins = "gpx1-0", "gpx1-1", "gpx1-2", "gpx1-3",
149			       "gpx1-4", "gpx1-5", "gpx1-6", "gpx1-7";
150		samsung,pin-function = <EXYNOS_PIN_FUNC_3>;
151		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
152		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
153	};
154};
155
156&rtc {
157	clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
158	clock-names = "rtc", "rtc_src";
159};
160
161&sdhci_2 {
162	bus-width = <4>;
163	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sd2_cd>;
164	pinctrl-names = "default";
165	status = "okay";
166};
167
168&serial_0 {
169	status = "okay";
170};
171
172&serial_1 {
173	status = "okay";
174};
175
176&serial_2 {
177	status = "okay";
178};
179
180&serial_3 {
181	status = "okay";
182};
183