ARM: dts: imx6q-dhcom: Add keys and leds to the PDK2 board
[linux-2.6-microblaze.git] / arch / arm / boot / dts / imx6q-dhcom-pdk2.dts
1 // SPDX-License-Identifier: (GPL-2.0+)
2 /*
3  * Copyright (C) 2015 DH electronics GmbH
4  * Copyright (C) 2018 Marek Vasut <marex@denx.de>
5  */
6
7 /dts-v1/;
8
9 #include "imx6q-dhcom-som.dtsi"
10 #include <dt-bindings/leds/common.h>
11
12 / {
13         model = "Freescale i.MX6 Quad DHCOM Premium Developer Kit (2)";
14         compatible = "dh,imx6q-dhcom-pdk2", "dh,imx6q-dhcom-som", "fsl,imx6q";
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 = <&pwm1 0 50000 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 = <&gpio3 27 GPIO_ACTIVE_HIGH>;
32                 status = "okay";
33         };
34
35         lcd_display: disp0 {
36                 compatible = "fsl,imx-parallel-display";
37                 #address-cells = <1>;
38                 #size-cells = <0>;
39                 interface-pix-fmt = "rgb24";
40                 pinctrl-names = "default";
41                 pinctrl-0 = <&pinctrl_ipu1_lcdif>;
42                 status = "okay";
43
44                 port@0 {
45                         reg = <0>;
46
47                         lcd_display_in: endpoint {
48                                 remote-endpoint = <&ipu1_di0_disp0>;
49                         };
50                 };
51
52                 port@1 {
53                         reg = <1>;
54
55                         lcd_display_out: endpoint {
56                                 remote-endpoint = <&lcd_panel_in>;
57                         };
58                 };
59         };
60
61         gpio-keys {
62                 #size-cells = <0>;
63                 compatible = "gpio-keys";
64                 pinctrl-names = "default";
65                 pinctrl-0 = <&pinctrl_keys_pdk2>;
66
67                 button-0 {
68                         label = "TA1-GPIO-A";
69                         linux,code = <KEY_A>;
70                         gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
71                         wakeup-source;
72                 };
73
74                 button-1 {
75                         label = "TA2-GPIO-B";
76                         linux,code = <KEY_B>;
77                         gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
78                         wakeup-source;
79                 };
80
81                 button-2 {
82                         label = "TA3-GPIO-C";
83                         linux,code = <KEY_C>;
84                         gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
85                         wakeup-source;
86                 };
87
88                 button-3 {
89                         label = "TA4-GPIO-D";
90                         linux,code = <KEY_D>;
91                         gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;
92                         wakeup-source;
93                 };
94         };
95
96         led {
97                 compatible = "gpio-leds";
98                 pinctrl-names = "default";
99                 pinctrl-0 = <&pinctrl_leds_pdk2>;
100
101                 /*
102                  * Disable led-5, because GPIO E is
103                  * already used as touch interrupt.
104                  */
105                 led-5 {
106                         color = <LED_COLOR_ID_GREEN>;
107                         function = LED_FUNCTION_INDICATOR;
108                         gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* GPIO E */
109                         default-state = "off";
110                         status = "disabled";
111                 };
112
113                 led-6 {
114                         color = <LED_COLOR_ID_GREEN>;
115                         function = LED_FUNCTION_INDICATOR;
116                         gpios = <&gpio4 20 GPIO_ACTIVE_HIGH>; /* GPIO F */
117                         default-state = "off";
118                 };
119
120                 led-7 {
121                         color = <LED_COLOR_ID_GREEN>;
122                         function = LED_FUNCTION_INDICATOR;
123                         gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* GPIO H */
124                         default-state = "off";
125                 };
126
127                 led-8 {
128                         color = <LED_COLOR_ID_GREEN>;
129                         function = LED_FUNCTION_INDICATOR;
130                         gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* GPIO I */
131                         default-state = "off";
132                 };
133         };
134
135         panel {
136                 compatible = "edt,etm0700g0edh6";
137                 ddc-i2c-bus = <&i2c2>;
138                 backlight = <&display_bl>;
139
140                 port {
141                         lcd_panel_in: endpoint {
142                                 remote-endpoint = <&lcd_display_out>;
143                         };
144                 };
145         };
146
147         sound {
148                 compatible = "fsl,imx-audio-sgtl5000";
149                 model = "imx-sgtl5000";
150                 ssi-controller = <&ssi1>;
151                 audio-codec = <&sgtl5000>;
152                 audio-routing =
153                         "MIC_IN", "Mic Jack",
154                         "Mic Jack", "Mic Bias",
155                         "LINE_IN", "Line In Jack",
156                         "Headphone Jack", "HP_OUT";
157                 mux-int-port = <1>;
158                 mux-ext-port = <3>;
159         };
160 };
161
162 &audmux {
163         pinctrl-names = "default";
164         pinctrl-0 = <&pinctrl_audmux_ext>;
165         status = "okay";
166 };
167
168 &can1 {
169         status = "okay";
170 };
171
172 &can2 {
173         status = "disabled";
174 };
175
176 &hdmi {
177         ddc-i2c-bus = <&i2c2>;
178         status = "okay";
179 };
180
181 &i2c2 {
182         sgtl5000: codec@a {
183                 compatible = "fsl,sgtl5000";
184                 reg = <0x0a>;
185                 #sound-dai-cells = <0>;
186                 clocks = <&clk_ext_audio_codec>;
187                 VDDA-supply = <&reg_3p3v>;
188                 VDDIO-supply = <&sw2_reg>;
189         };
190
191         touchscreen@38 {
192                 pinctrl-names = "default";
193                 pinctrl-0 = <&pinctrl_touchscreen>;
194                 compatible = "edt,edt-ft5406";
195                 reg = <0x38>;
196                 interrupt-parent = <&gpio4>;
197                 interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
198         };
199 };
200
201 &iomuxc {
202         pinctrl-names = "default";
203         pinctrl-0 = <&pinctrl_hog_base &pinctrl_hog>;
204
205         pinctrl_hog: hog-grp {
206                 fsl,pins = <
207                         MX6QDL_PAD_GPIO_2__GPIO1_IO02           0x400120b0
208                         MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x400120b0
209                         MX6QDL_PAD_GPIO_5__GPIO1_IO05           0x400120b0
210                         MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03       0x400120b0
211                         MX6QDL_PAD_DI0_PIN4__GPIO4_IO20         0x400120b0
212                         MX6QDL_PAD_KEY_ROW0__GPIO4_IO07         0x120b0
213                         MX6QDL_PAD_KEY_COL1__GPIO4_IO08         0x400120b0
214                         MX6QDL_PAD_NANDF_CS1__GPIO6_IO14        0x400120b0
215                         MX6QDL_PAD_NANDF_CS2__GPIO6_IO15        0x400120b0
216                         MX6QDL_PAD_KEY_ROW1__GPIO4_IO09         0x400120b0
217                         MX6QDL_PAD_SD3_DAT5__GPIO7_IO00         0x400120b0
218                         MX6QDL_PAD_SD3_DAT4__GPIO7_IO01         0x400120b0
219                         MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21       0x400120b0
220                         MX6QDL_PAD_GPIO_18__GPIO7_IO13          0x400120b0
221                         MX6QDL_PAD_SD1_CMD__GPIO1_IO18          0x400120b0
222                         MX6QDL_PAD_SD1_DAT0__GPIO1_IO16         0x400120b0
223                         MX6QDL_PAD_SD1_DAT1__GPIO1_IO17         0x400120b0
224                         MX6QDL_PAD_SD1_DAT2__GPIO1_IO19         0x400120b0
225                         MX6QDL_PAD_SD1_CLK__GPIO1_IO20          0x400120b0
226                         MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18      0x400120b0
227                         MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19        0x400120b0
228                         MX6QDL_PAD_KEY_COL0__GPIO4_IO06         0x400120b0
229                 >;
230         };
231
232         pinctrl_audmux_ext: audmux-ext-grp {
233                 fsl,pins = <
234                         MX6QDL_PAD_CSI0_DAT7__AUD3_RXD          0x130b0
235                         MX6QDL_PAD_CSI0_DAT4__AUD3_TXC          0x130b0
236                         MX6QDL_PAD_CSI0_DAT5__AUD3_TXD          0x110b0
237                         MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS         0x130b0
238                 >;
239         };
240
241         pinctrl_enet_1G: enet-1G-grp {
242                 fsl,pins = <
243                         MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x100b0
244                         MX6QDL_PAD_ENET_MDC__ENET_MDC           0x100b0
245                         MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x100b0
246                         MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x100b0
247                         MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x100b0
248                         MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x100b0
249                         MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x100b0
250                         MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x100b0
251                         MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
252                         MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b0b0
253                         MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x1b0b0
254                         MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x1b0b0
255                         MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b0b0
256                         MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b0b0
257                         MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
258                         MX6QDL_PAD_EIM_D29__GPIO3_IO29          0x000b0
259                         MX6QDL_PAD_GPIO_0__GPIO1_IO00           0x000b1
260                         MX6QDL_PAD_EIM_D26__GPIO3_IO26          0x000b1
261                 >;
262         };
263
264         pinctrl_ipu1_lcdif: ipu1-lcdif-grp {
265                 fsl,pins = <
266                         MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK      0x38
267                         MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15            0x38
268                         MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02             0x38
269                         MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03             0x38
270                         MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00        0x38
271                         MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01        0x38
272                         MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02        0x38
273                         MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03        0x38
274                         MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04        0x38
275                         MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05        0x38
276                         MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06        0x38
277                         MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07        0x38
278                         MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08        0x38
279                         MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09        0x38
280                         MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10       0x38
281                         MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11       0x38
282                         MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12       0x38
283                         MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13       0x38
284                         MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14       0x38
285                         MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15       0x38
286                         MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16       0x38
287                         MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17       0x38
288                         MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18       0x38
289                         MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19       0x38
290                         MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20       0x38
291                         MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21       0x38
292                         MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22       0x38
293                         MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23       0x38
294                         MX6QDL_PAD_EIM_D27__GPIO3_IO27                  0x120b0
295                 >;
296         };
297
298         pinctrl_pwm1: pwm1-grp {
299                 fsl,pins = <
300                         MX6QDL_PAD_SD1_DAT3__PWM1_OUT           0x1b0b1
301                 >;
302         };
303
304         pinctrl_touchscreen: touchscreen-grp {
305                 fsl,pins = <
306                         MX6QDL_PAD_GPIO_19__GPIO4_IO05          0x1b0b1
307                 >;
308         };
309
310         pinctrl_pcie_reset: pcie-reset-grp {
311                 fsl,pins = <
312                         MX6QDL_PAD_NANDF_CS1__GPIO6_IO14        0x120b0
313                 >;
314         };
315
316         pinctrl_keys_pdk2: keys-pdk2-grp {
317                 fsl,pins = <
318                         MX6QDL_PAD_GPIO_2__GPIO1_IO02           0x120b0 /* TA1 */
319                         MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x120b0 /* TA2 */
320                         MX6QDL_PAD_GPIO_5__GPIO1_IO05           0x120b0 /* TA3 */
321                         MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03       0x120b0 /* TA4 */
322                 >;
323         };
324
325         pinctrl_leds_pdk2: leds-pdk2-grp {
326                 fsl,pins = <
327                         MX6QDL_PAD_DI0_PIN4__GPIO4_IO20         0x120b0 /* led6 */
328                         MX6QDL_PAD_KEY_ROW0__GPIO4_IO07         0x120b0 /* led7 */
329                         MX6QDL_PAD_KEY_COL1__GPIO4_IO08         0x120b0 /* led8 */
330                 >;
331         };
332
333 };
334
335 &ipu1_di0_disp0 {
336         remote-endpoint = <&lcd_display_in>;
337 };
338
339 &pcie {
340         pinctrl-0 = <&pinctrl_pcie &pinctrl_pcie_reset>;
341         reset-gpio = <&gpio6 14 GPIO_ACTIVE_LOW>;
342         status = "okay";
343 };
344
345 &pwm1 {
346         pinctrl-names = "default";
347         pinctrl-0 = <&pinctrl_pwm1>;
348         status = "okay";
349 };
350
351 &ssi1 {
352         status = "okay";
353 };
354
355 &sata {
356         status = "okay";
357 };
358
359 &usdhc3 {
360         status = "okay";
361 };