Merge remote-tracking branches 'spi/topic/devprop', 'spi/topic/fsl', 'spi/topic/fsl...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / exynos4412-itop-elite.dts
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 };