Merge tag 'for-5.11/dm-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/device...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / imx6q-apalis-ixora-v1.1.dts
1 // SPDX-License-Identifier: GPL-2.0+ OR MIT
2 /*
3  * Copyright 2014-2020 Toradex
4  * Copyright 2012 Freescale Semiconductor, Inc.
5  * Copyright 2011 Linaro Ltd.
6  */
7
8 /dts-v1/;
9
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/input.h>
12 #include <dt-bindings/interrupt-controller/irq.h>
13 #include "imx6q.dtsi"
14 #include "imx6qdl-apalis.dtsi"
15
16 / {
17         model = "Toradex Apalis iMX6Q/D Module on Ixora Carrier Board V1.1";
18         compatible = "toradex,apalis_imx6q-ixora-v1.1",
19                      "toradex,apalis_imx6q-ixora", "toradex,apalis_imx6q",
20                      "fsl,imx6q";
21
22         aliases {
23                 i2c0 = &i2c1;
24                 i2c1 = &i2c3;
25                 i2c2 = &i2c2;
26                 rtc0 = &rtc_i2c;
27                 rtc1 = &snvs_rtc;
28         };
29
30         chosen {
31                 stdout-path = "serial0:115200n8";
32         };
33
34         gpio-keys {
35                 compatible = "gpio-keys";
36                 pinctrl-names = "default";
37                 pinctrl-0 = <&pinctrl_gpio_keys>;
38
39                 wakeup {
40                         label = "Wake-Up";
41                         gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
42                         linux,code = <KEY_WAKEUP>;
43                         debounce-interval = <10>;
44                         wakeup-source;
45                 };
46         };
47
48         lcd_display: disp0 {
49                 compatible = "fsl,imx-parallel-display";
50                 #address-cells = <1>;
51                 #size-cells = <0>;
52                 interface-pix-fmt = "rgb24";
53                 pinctrl-names = "default";
54                 pinctrl-0 = <&pinctrl_ipu1_lcdif>;
55                 status = "okay";
56
57                 port@0 {
58                         reg = <0>;
59
60                         lcd_display_in: endpoint {
61                                 remote-endpoint = <&ipu1_di1_disp1>;
62                         };
63                 };
64
65                 port@1 {
66                         reg = <1>;
67
68                         lcd_display_out: endpoint {
69                                 remote-endpoint = <&lcd_panel_in>;
70                         };
71                 };
72         };
73
74         panel: panel {
75                 /*
76                  * edt,et057090dhu: EDT 5.7" LCD TFT
77                  * edt,et070080dh6: EDT 7.0" LCD TFT
78                  */
79                 compatible = "edt,et057090dhu";
80                 backlight = <&backlight>;
81
82                 port {
83                         lcd_panel_in: endpoint {
84                                 remote-endpoint = <&lcd_display_out>;
85                         };
86                 };
87         };
88
89         leds {
90                 compatible = "gpio-leds";
91
92                 pinctrl-names = "default";
93                 pinctrl-0 = <&pinctrl_leds_ixora>;
94
95                 led4-green {
96                         label = "LED_4_GREEN";
97                         gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
98                 };
99
100                 led4-red {
101                         label = "LED_4_RED";
102                         gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
103                 };
104
105                 led5-green {
106                         label = "LED_5_GREEN";
107                         gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
108                 };
109
110                 led5-red {
111                         label = "LED_5_RED";
112                         gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
113                 };
114         };
115 };
116
117 &backlight {
118         brightness-levels = <0 127 191 223 239 247 251 255>;
119         default-brightness-level = <1>;
120         status = "okay";
121 };
122
123 &can1 {
124         status = "okay";
125 };
126
127 &can2 {
128         status = "okay";
129 };
130
131 &hdmi {
132         status = "okay";
133 };
134
135 /* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
136 &i2c1 {
137         status = "okay";
138
139         /*
140          * Touchscreen is using SODIMM 28/30, also used for PWM<B>, PWM<C>,
141          * aka pwm2, pwm3. so if you enable touchscreen, disable the pwms
142          */
143         touchscreen@4a {
144                 compatible = "atmel,maxtouch";
145                 reg = <0x4a>;
146                 interrupt-parent = <&gpio6>;
147                 interrupts = <10 IRQ_TYPE_EDGE_FALLING>;
148                 reset-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>; /* SODIMM 13 */
149                 status = "disabled";
150         };
151
152         /* M41T0M6 real time clock on carrier board */
153         rtc_i2c: rtc@68 {
154                 compatible = "st,m41t0";
155                 reg = <0x68>;
156         };
157 };
158
159 /*
160  * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
161  * board)
162  */
163 &i2c3 {
164         status = "okay";
165 };
166
167 &ipu1_di1_disp1 {
168         remote-endpoint = <&lcd_display_in>;
169 };
170
171 &ldb {
172         status = "okay";
173 };
174
175 &pcie {
176         pinctrl-names = "default";
177         pinctrl-0 = <&pinctrl_reset_moci>;
178         /* active-high meaning opposite of regular PERST# active-low polarity */
179         reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
180         reset-gpio-active-high;
181         status = "okay";
182 };
183
184 &pwm1 {
185         status = "okay";
186 };
187
188 &pwm2 {
189         status = "okay";
190 };
191
192 &pwm3 {
193         status = "okay";
194 };
195
196 &pwm4 {
197         status = "okay";
198 };
199
200 &reg_usb_otg_vbus {
201         status = "okay";
202 };
203
204 &reg_usb_host_vbus {
205         status = "okay";
206 };
207
208 &sata {
209         status = "okay";
210 };
211
212 &sound_spdif {
213         status = "okay";
214 };
215
216 &spdif {
217         status = "okay";
218 };
219
220 &uart1 {
221         status = "okay";
222 };
223
224 &uart2 {
225         status = "okay";
226 };
227
228 &uart4 {
229         status = "okay";
230 };
231
232 &uart5 {
233         status = "okay";
234 };
235
236 &usbh1 {
237         vbus-supply = <&reg_usb_host_vbus>;
238         status = "okay";
239 };
240
241 &usbotg {
242         vbus-supply = <&reg_usb_otg_vbus>;
243         status = "okay";
244 };
245
246 /* MMC1 */
247 &usdhc1 {
248         pinctrl-names = "default";
249         pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_mmc_cd>;
250         cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
251         bus-width = <4>;
252         status = "okay";
253 };
254
255 &iomuxc {
256         /*
257          * Mux the Apalis GPIOs
258          */
259         pinctrl-names = "default";
260         pinctrl-0 = <&pinctrl_apalis_gpio1 &pinctrl_apalis_gpio2
261                      &pinctrl_apalis_gpio3 &pinctrl_apalis_gpio4
262                      &pinctrl_apalis_gpio5 &pinctrl_apalis_gpio6
263                      &pinctrl_apalis_gpio7 &pinctrl_apalis_gpio8
264                     >;
265
266         pinctrl_leds_ixora: ledsixoragrp {
267                 fsl,pins = <
268                         MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x1b0b0
269                         MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0
270                         MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
271                         MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
272                 >;
273         };
274 };