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