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