• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * TOPEET's Exynos4412 based itop board device tree source
3 *
4 * Copyright (c) 2016 SUMOMO Computer Association
5 *			https://www.sumomo.mobi
6 *			Randy Li <ayaka@soulik.info>
7 *
8 * Device tree source file for TOPEET iTop Exynos 4412 core board
9 * which is based on Samsung's Exynos4412 SoC.
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14 */
15
16/dts-v1/;
17#include <dt-bindings/pwm/pwm.h>
18#include <dt-bindings/sound/samsung-i2s.h>
19#include "exynos4412-itop-scp-core.dtsi"
20
21/ {
22	model = "TOPEET iTop 4412 Elite board based on Exynos4412";
23	compatible = "topeet,itop4412-elite", "samsung,exynos4412", "samsung,exynos4";
24
25	chosen {
26		bootargs = "root=/dev/mmcblk0p2 rw rootfstype=ext4 rootdelay=1 rootwait";
27		stdout-path = "serial2:115200n8";
28	};
29
30	leds {
31		compatible = "gpio-leds";
32
33		led2 {
34			label = "red:system";
35			gpios = <&gpx1 0 GPIO_ACTIVE_HIGH>;
36			default-state = "off";
37			linux,default-trigger = "heartbeat";
38		};
39
40		led3 {
41			label = "red:user";
42			gpios = <&gpk1 1 GPIO_ACTIVE_HIGH>;
43			default-state = "off";
44		};
45	};
46
47	gpio-keys {
48		compatible = "gpio-keys";
49
50		home {
51			label = "GPIO Key Home";
52			linux,code = <KEY_HOME>;
53			gpios = <&gpx1 1 GPIO_ACTIVE_LOW>;
54		};
55
56		back {
57			label = "GPIO Key Back";
58			linux,code = <KEY_BACK>;
59			gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
60		};
61
62		sleep {
63			label = "GPIO Key Sleep";
64			linux,code = <KEY_POWER>;
65			gpios = <&gpx3 3 GPIO_ACTIVE_LOW>;
66		};
67
68		vol-up {
69			label = "GPIO Key Vol+";
70			linux,code = <KEY_UP>;
71			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
72		};
73
74		vol-down {
75			label = "GPIO Key Vol-";
76			linux,code = <KEY_DOWN>;
77			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
78		};
79	};
80
81	sound {
82		compatible = "simple-audio-card";
83		simple-audio-card,name = "wm-sound";
84
85		simple-audio-card,format = "i2s";
86		simple-audio-card,bitclock-master = <&link0_codec>;
87		simple-audio-card,frame-master = <&link0_codec>;
88
89		simple-audio-card,widgets =
90			"Microphone", "Mic Jack",
91			"Line", "Line In",
92			"Line", "Line Out",
93			"Speaker", "Speaker",
94			"Headphone", "Headphone Jack";
95		simple-audio-card,routing =
96			"Headphone Jack", "HP_L",
97			"Headphone Jack", "HP_R",
98			"Speaker", "SPK_LP",
99			"Speaker", "SPK_LN",
100			"Speaker", "SPK_RP",
101			"Speaker", "SPK_RN",
102			"LINPUT1", "Mic Jack",
103			"LINPUT3", "Mic Jack",
104			"RINPUT1", "Mic Jack",
105			"RINPUT2", "Mic Jack";
106
107		simple-audio-card,cpu {
108			sound-dai = <&i2s0 0>;
109		};
110
111		link0_codec: simple-audio-card,codec {
112			sound-dai = <&codec>;
113			clocks = <&i2s0 CLK_I2S_CDCLK>;
114			system-clock-frequency = <11289600>;
115		};
116	};
117
118	beep {
119		compatible = "pwm-beeper";
120		pwms = <&pwm 0 4000000 PWM_POLARITY_INVERTED>;
121	};
122
123	camera: camera {
124		pinctrl-0 = <&cam_port_a_clk_active>;
125		pinctrl-names = "default";
126		status = "okay";
127		assigned-clocks = <&clock CLK_MOUT_CAM0>;
128		assigned-clock-parents = <&clock CLK_XUSBXTI>;
129	};
130};
131
132&adc {
133	vdd-supply = <&ldo3_reg>;
134	status = "okay";
135};
136
137&clock_audss {
138	assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
139			<&clock_audss EXYNOS_MOUT_I2S>,
140			<&clock_audss EXYNOS_DOUT_SRP>,
141			<&clock_audss EXYNOS_DOUT_AUD_BUS>;
142	assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
143			<&clock_audss EXYNOS_MOUT_AUDSS>;
144	assigned-clock-rates = <0>, <0>, <112896000>, <11289600>;
145};
146
147&ehci {
148	status = "okay";
149	/* In order to reset USB ethernet */
150	samsung,vbus-gpio = <&gpc0 1 GPIO_ACTIVE_HIGH>;
151
152	port@0 {
153		status = "okay";
154	};
155
156	port@2 {
157		status = "okay";
158	};
159};
160
161&exynos_usbphy {
162	status = "okay";
163};
164
165&fimc_0 {
166	status = "okay";
167	assigned-clocks = <&clock CLK_MOUT_FIMC0>,
168			<&clock CLK_SCLK_FIMC0>;
169	assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>;
170	assigned-clock-rates = <0>, <176000000>;
171};
172
173&hsotg {
174	dr_mode = "peripheral";
175	status = "okay";
176};
177
178&i2c_4 {
179	samsung,i2c-sda-delay = <100>;
180	samsung,i2c-slave-addr = <0x10>;
181	samsung,i2c-max-bus-freq = <100000>;
182	pinctrl-0 = <&i2c4_bus>;
183	pinctrl-names = "default";
184	status = "okay";
185
186	codec: wm8960@1a {
187		compatible = "wlf,wm8960";
188		reg = <0x1a>;
189		clocks = <&pmu_system_controller 0>;
190		clock-names = "MCLK1";
191		wlf,shared-lrclk;
192		#sound-dai-cells = <0>;
193	};
194};
195
196&i2s0 {
197	pinctrl-0 = <&i2s0_bus>;
198	pinctrl-names = "default";
199	status = "okay";
200};
201
202&pinctrl_1 {
203	ether-reset {
204		samsung,pins = "gpc0-1";
205		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
206		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
207		samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
208	};
209};
210
211&pwm {
212	status = "okay";
213	pinctrl-0 = <&pwm0_out>;
214	pinctrl-names = "default";
215	samsung,pwm-outputs = <0>;
216};
217
218&sdhci_2 {
219	bus-width = <4>;
220	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
221	pinctrl-names = "default";
222	cd-gpio = <&gpx0 7 GPIO_ACTIVE_LOW>;
223	cap-sd-highspeed;
224	vmmc-supply = <&ldo23_reg>;
225	vqmmc-supply = <&ldo17_reg>;
226	status = "okay";
227};
228
229&serial_1 {
230	status = "okay";
231};
232
233&serial_2 {
234	status = "okay";
235};
236