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