Loading...
Note: File does not exist in v4.6.
1// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
2/*
3 * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
4 */
5
6#include <dt-bindings/input/input.h>
7#include <dt-bindings/pwm/pwm.h>
8
9/ {
10 aliases {
11 serial0 = &uart4;
12 serial1 = &usart3;
13 serial2 = &uart8;
14 };
15
16 chosen {
17 stdout-path = "serial0:115200n8";
18 };
19
20 clk_ext_audio_codec: clock-codec {
21 compatible = "fixed-clock";
22 #clock-cells = <0>;
23 clock-frequency = <24000000>;
24 };
25
26 display_bl: display-bl {
27 compatible = "pwm-backlight";
28 pwms = <&pwm2 3 500000 PWM_POLARITY_INVERTED>;
29 brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
30 default-brightness-level = <8>;
31 enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
32 status = "okay";
33 };
34
35 gpio-keys-polled {
36 compatible = "gpio-keys-polled";
37 poll-interval = <20>;
38
39 /*
40 * The EXTi IRQ line 3 is shared with ethernet,
41 * so mark this as polled GPIO key.
42 */
43 button-0 {
44 label = "TA1-GPIO-A";
45 linux,code = <KEY_A>;
46 gpios = <&gpiof 3 GPIO_ACTIVE_LOW>;
47 };
48
49 /*
50 * The EXTi IRQ line 6 is shared with touchscreen,
51 * so mark this as polled GPIO key.
52 */
53 button-1 {
54 label = "TA2-GPIO-B";
55 linux,code = <KEY_B>;
56 gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
57 };
58
59 /*
60 * The EXTi IRQ line 0 is shared with PMIC,
61 * so mark this as polled GPIO key.
62 */
63 button-2 {
64 label = "TA3-GPIO-C";
65 linux,code = <KEY_C>;
66 gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
67 };
68 };
69
70 gpio-keys {
71 compatible = "gpio-keys";
72
73 button-3 {
74 label = "TA4-GPIO-D";
75 linux,code = <KEY_D>;
76 gpios = <&gpiod 12 GPIO_ACTIVE_LOW>;
77 wakeup-source;
78 };
79 };
80
81 led {
82 compatible = "gpio-leds";
83
84 led-0 {
85 label = "green:led5";
86 gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>;
87 default-state = "off";
88 status = "disabled";
89 };
90
91 led-1 {
92 label = "green:led6";
93 gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
94 default-state = "off";
95 };
96
97 led-2 {
98 label = "green:led7";
99 gpios = <&gpioi 2 GPIO_ACTIVE_HIGH>;
100 default-state = "off";
101 };
102
103 led-3 {
104 label = "green:led8";
105 gpios = <&gpioi 3 GPIO_ACTIVE_HIGH>;
106 default-state = "off";
107 };
108 };
109
110 panel {
111 compatible = "edt,etm0700g0edh6";
112 backlight = <&display_bl>;
113
114 port {
115 lcd_panel_in: endpoint {
116 remote-endpoint = <&lcd_display_out>;
117 };
118 };
119 };
120
121 sound {
122 compatible = "audio-graph-card";
123 routing =
124 "MIC_IN", "Capture",
125 "Capture", "Mic Bias",
126 "Playback", "HP_OUT";
127 dais = <&sai2a_port &sai2b_port>;
128 status = "okay";
129 };
130};
131
132&cec {
133 pinctrl-names = "default";
134 pinctrl-0 = <&cec_pins_a>;
135 status = "okay";
136};
137
138&i2c2 { /* Header X22 */
139 pinctrl-names = "default";
140 pinctrl-0 = <&i2c2_pins_a>;
141 i2c-scl-rising-time-ns = <185>;
142 i2c-scl-falling-time-ns = <20>;
143 status = "okay";
144 /* spare dmas for other usage */
145 /delete-property/dmas;
146 /delete-property/dma-names;
147 status = "okay";
148};
149
150&i2c5 { /* Header X21 */
151 pinctrl-names = "default";
152 pinctrl-0 = <&i2c5_pins_a>;
153 i2c-scl-rising-time-ns = <185>;
154 i2c-scl-falling-time-ns = <20>;
155 status = "okay";
156 /* spare dmas for other usage */
157 /delete-property/dmas;
158 /delete-property/dma-names;
159
160 sgtl5000: codec@a {
161 compatible = "fsl,sgtl5000";
162 reg = <0x0a>;
163 #sound-dai-cells = <0>;
164 clocks = <&clk_ext_audio_codec>;
165 VDDA-supply = <&v3v3>;
166 VDDIO-supply = <&vdd>;
167
168 sgtl5000_port: port {
169 #address-cells = <1>;
170 #size-cells = <0>;
171
172 sgtl5000_tx_endpoint: endpoint@0 {
173 reg = <0>;
174 remote-endpoint = <&sai2a_endpoint>;
175 frame-master = <&sgtl5000_tx_endpoint>;
176 bitclock-master = <&sgtl5000_tx_endpoint>;
177 };
178
179 sgtl5000_rx_endpoint: endpoint@1 {
180 reg = <1>;
181 remote-endpoint = <&sai2b_endpoint>;
182 frame-master = <&sgtl5000_rx_endpoint>;
183 bitclock-master = <&sgtl5000_rx_endpoint>;
184 };
185 };
186
187 };
188
189 touchscreen@38 {
190 compatible = "edt,edt-ft5406";
191 reg = <0x38>;
192 interrupt-parent = <&gpioc>;
193 interrupts = <6 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
194 };
195};
196
197<dc {
198 pinctrl-names = "default", "sleep";
199 pinctrl-0 = <<dc_pins_b>;
200 pinctrl-1 = <<dc_sleep_pins_b>;
201 status = "okay";
202
203 port {
204 lcd_display_out: endpoint {
205 remote-endpoint = <&lcd_panel_in>;
206 };
207 };
208};
209
210&sai2 {
211 clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
212 clock-names = "pclk", "x8k", "x11k";
213 pinctrl-names = "default", "sleep";
214 pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
215 pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
216 status = "okay";
217
218 sai2a: audio-controller@4400b004 {
219 #clock-cells = <0>;
220 dma-names = "tx";
221 clocks = <&rcc SAI2_K>;
222 clock-names = "sai_ck";
223 status = "okay";
224
225 sai2a_port: port {
226 sai2a_endpoint: endpoint {
227 remote-endpoint = <&sgtl5000_tx_endpoint>;
228 format = "i2s";
229 mclk-fs = <512>;
230 dai-tdm-slot-num = <2>;
231 dai-tdm-slot-width = <16>;
232 };
233 };
234 };
235
236 sai2b: audio-controller@4400b024 {
237 dma-names = "rx";
238 st,sync = <&sai2a 2>;
239 clocks = <&rcc SAI2_K>, <&sai2a>;
240 clock-names = "sai_ck", "MCLK";
241 status = "okay";
242
243 sai2b_port: port {
244 sai2b_endpoint: endpoint {
245 remote-endpoint = <&sgtl5000_rx_endpoint>;
246 format = "i2s";
247 mclk-fs = <512>;
248 dai-tdm-slot-num = <2>;
249 dai-tdm-slot-width = <16>;
250 };
251 };
252 };
253};
254
255&timers2 {
256 /* spare dmas for other usage (un-delete to enable pwm capture) */
257 /delete-property/dmas;
258 /delete-property/dma-names;
259 status = "okay";
260 pwm2: pwm {
261 pinctrl-0 = <&pwm2_pins_a>;
262 pinctrl-names = "default";
263 status = "okay";
264 };
265 timer@1 {
266 status = "okay";
267 };
268};
269
270&usart3 {
271 pinctrl-names = "default";
272 pinctrl-0 = <&usart3_pins_a>;
273 status = "okay";
274};
275
276&uart8 {
277 pinctrl-names = "default";
278 pinctrl-0 = <&uart8_pins_a &uart8_rtscts_pins_a>;
279 uart-has-rtscts;
280 status = "okay";
281};
282
283&usbh_ehci {
284 phys = <&usbphyc_port0>;
285 status = "okay";
286};
287
288&usbotg_hs {
289 dr_mode = "otg";
290 pinctrl-0 = <&usbotg_hs_pins_a>;
291 pinctrl-names = "default";
292 phy-names = "usb2-phy";
293 phys = <&usbphyc_port1 0>;
294 vbus-supply = <&vbus_otg>;
295 status = "okay";
296};
297
298&usbphyc {
299 status = "okay";
300};
301
302&usbphyc_port0 {
303 phy-supply = <&vdd_usb>;
304};
305
306&usbphyc_port1 {
307 phy-supply = <&vdd_usb>;
308};