WIP FPC-III support
[linux/fpc-iii.git] / arch / arm / boot / dts / imx6-logicpd-baseboard.dtsi
blob665d63765cdc2333efe7ba296e1097ab03a4b006
1 // SPDX-License-Identifier: GPL-2.0
2 //
3 // Copyright (C) 2019 Logic PD, Inc.
5 / {
6         keyboard {
7                 compatible = "gpio-keys";
9                 btn0 {
10                         gpios = <&pcf8575 0 GPIO_ACTIVE_LOW>;
11                         label = "btn0";
12                         linux,code = <KEY_WAKEUP>;
13                         debounce-interval = <10>;
14                         wakeup-source;
15                 };
17                 btn1 {
18                         gpios = <&pcf8575 1 GPIO_ACTIVE_LOW>;
19                         label = "btn1";
20                         linux,code = <KEY_WAKEUP>;
21                         debounce-interval = <10>;
22                         wakeup-source;
23                 };
25                 btn2 {
26                         gpios = <&pcf8575 2 GPIO_ACTIVE_LOW>;
27                         label = "btn2";
28                         linux,code = <KEY_WAKEUP>;
29                         debounce-interval = <10>;
30                         wakeup-source;
31                 };
33                 btn3 {
34                         gpios = <&pcf8575 3 GPIO_ACTIVE_LOW>;
35                         label = "btn3";
36                         linux,code = <KEY_WAKEUP>;
37                         debounce-interval = <10>;
38                         wakeup-source;
39                 };
41         };
43         leds {
44                 compatible = "gpio-leds";
46                 gen-led0 {
47                         label = "led0";
48                         pinctrl-names = "default";
49                         pinctrl-0 = <&pinctrl_led0>;
50                         gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
51                         linux,default-trigger = "cpu0";
52                 };
54                 gen-led1 {
55                         label = "led1";
56                         gpios = <&pcf8575 8 GPIO_ACTIVE_HIGH>;
57                 };
59                 gen-led2 {
60                         label = "led2";
61                         gpios = <&pcf8575 9 GPIO_ACTIVE_HIGH>;
62                         linux,default-trigger = "heartbeat";
63                 };
65                 gen-led3 {
66                         label = "led3";
67                         gpios = <&pcf8575 10 GPIO_ACTIVE_HIGH>;
68                         linux,default-trigger = "default-on";
69                 };
70         };
72         reg_usb_otg_vbus: regulator-otg-vbus {
73                 pinctrl-names = "default";
74                 pinctrl-0 = <&pinctrl_reg_usb_otg>;
75                 compatible = "regulator-fixed";
76                 regulator-name = "usb_otg_vbus";
77                 regulator-min-microvolt = <5000000>;
78                 regulator-max-microvolt = <5000000>;
79                 gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
80                 enable-active-high;
81         };
83         reg_usb_h1_vbus: regulator-usb-h1-vbus {
84                 pinctrl-names = "default";
85                 pinctrl-0 = <&pinctrl_reg_usb_h1_vbus>;
86                 compatible = "regulator-fixed";
87                 regulator-name = "usb_h1_vbus";
88                 regulator-min-microvolt = <5000000>;
89                 regulator-max-microvolt = <5000000>;
90                 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
91                 startup-delay-us = <70000>;
92                 enable-active-high;
93         };
95         reg_3v3: regulator-3v3 {
96                 pinctrl-names = "default";
97                 pinctrl-0 = <&pinctrl_reg_3v3>;
98                 compatible = "regulator-fixed";
99                 regulator-name = "reg_3v3";
100                 regulator-min-microvolt = <3300000>;
101                 regulator-max-microvolt = <3300000>;
102                 gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
103                 startup-delay-us = <70000>;
104                 enable-active-high;
105                 regulator-always-on;
106         };
108         reg_enet: regulator-ethernet {
109                 pinctrl-names = "default";
110                 pinctrl-0 = <&pinctrl_reg_enet>;
111                 compatible = "regulator-fixed";
112                 regulator-name = "ethernet-supply";
113                 regulator-min-microvolt = <3300000>;
114                 regulator-max-microvolt = <3300000>;
115                 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
116                 startup-delay-us = <70000>;
117                 enable-active-high;
118                 vin-supply = <&sw4_reg>;
119         };
121         reg_audio: regulator-audio {
122                 pinctrl-names = "default";
123                 pinctrl-0 = <&pinctrl_reg_audio>;
124                 compatible = "regulator-fixed";
125                 regulator-name = "3v3_aud";
126                 regulator-min-microvolt = <3300000>;
127                 regulator-max-microvolt = <3300000>;
128                 gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>;
129                 enable-active-high;
130                 vin-supply = <&reg_3v3>;
131         };
133         reg_hdmi: regulator-hdmi {
134                 pinctrl-names = "default";
135                 pinctrl-0 = <&pinctrl_reg_hdmi>;
136                 compatible = "regulator-fixed";
137                 regulator-name = "hdmi-supply";
138                 regulator-min-microvolt = <3300000>;
139                 regulator-max-microvolt = <3300000>;
140                 gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
141                 enable-active-high;
142                 vin-supply = <&reg_3v3>;
143         };
145         reg_uart3: regulator-uart3 {
146                 pinctrl-names = "default";
147                 pinctrl-0 = <&pinctrl_reg_uart3>;
148                 compatible = "regulator-fixed";
149                 regulator-name = "uart3-supply";
150                 gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
151                 enable-active-high;
152                 regulator-always-on;
153                 vin-supply = <&reg_3v3>;
154         };
156         reg_1v8: regulator-1v8 {
157                 pinctrl-names = "default";
158                 pinctrl-0 = <&pinctrl_reg_1v8>;
159                 compatible = "regulator-fixed";
160                 regulator-name = "1v8-supply";
161                 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
162                 enable-active-high;
163                 regulator-always-on;
164                 vin-supply = <&reg_3v3>;
165         };
167         reg_pcie: regulator-pcie {
168                 compatible = "regulator-fixed";
169                 pinctrl-names = "default";
170                 pinctrl-0 = <&pinctrl_reg_pcie>;
171                 regulator-name = "mpcie_3v3";
172                 regulator-min-microvolt = <3300000>;
173                 regulator-max-microvolt = <3300000>;
174                 gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
175                 enable-active-high;
176         };
178         reg_mipi: regulator-mipi {
179                 compatible = "regulator-fixed";
180                 pinctrl-names = "default";
181                 pinctrl-0 = <&pinctrl_reg_mipi>;
182                 regulator-name = "mipi_pwr_en";
183                 regulator-min-microvolt = <2800000>;
184                 regulator-max-microvolt = <2800000>;
185                 gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>;
186                 enable-active-high;
187         };
189         sound {
190                 compatible = "fsl,imx-audio-wm8962";
191                 model = "wm8962-audio";
192                 ssi-controller = <&ssi2>;
193                 audio-codec = <&wm8962>;
194                 audio-routing =
195                         "Headphone Jack", "HPOUTL",
196                         "Headphone Jack", "HPOUTR",
197                         "Ext Spk", "SPKOUTL",
198                         "Ext Spk", "SPKOUTR",
199                         "AMIC", "MICBIAS",
200                         "IN3R", "AMIC";
201                 mux-int-port = <2>;
202                 mux-ext-port = <4>;
203         };
206 &audmux {
207         pinctrl-names = "default";
208         pinctrl-0 = <&pinctrl_audmux>;
209         status = "okay";
212 &ecspi1 {
213         pinctrl-names = "default";
214         pinctrl-0 = <&pinctrl_ecspi1>;
215         cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
216         status = "disabled";
219 &fec {
220         pinctrl-names = "default";
221         pinctrl-0 = <&pinctrl_enet>;
222         phy-mode = "rgmii-id";
223         phy-reset-duration = <10>;
224         phy-reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
225         phy-supply = <&reg_enet>;
226         interrupt-parent = <&gpio1>;
227         interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
228         status = "okay";
231 &i2c1 {
232         pinctrl-names = "default";
233         pinctrl-0 = <&pinctrl_i2c1>;
234         clock-frequency = <400000>;
235         status = "okay";
237         wm8962: audio-codec@1a {
238                 compatible = "wlf,wm8962";
239                 reg = <0x1a>;
240                 clocks = <&clks IMX6QDL_CLK_CKO>;
241                 clock-names = "xclk";
242                 DCVDD-supply = <&reg_audio>;
243                 DBVDD-supply = <&reg_audio>;
244                 AVDD-supply = <&reg_audio>;
245                 CPVDD-supply = <&reg_audio>;
246                 MICVDD-supply = <&reg_audio>;
247                 PLLVDD-supply = <&reg_audio>;
248                 SPKVDD1-supply = <&reg_audio>;
249                 SPKVDD2-supply = <&reg_audio>;
250                 gpio-cfg = <
251                         0x0000 /* 0:Default */
252                         0x0000 /* 1:Default */
253                         0x0000 /* 2:FN_DMICCLK */
254                         0x0000 /* 3:Default */
255                         0x0000 /* 4:FN_DMICCDAT */
256                         0x0000 /* 5:Default */
257                 >;
258         };
261 &i2c3 {
262         ov5640: camera@10 {
263                 compatible = "ovti,ov5640";
264                 pinctrl-names = "default";
265                 pinctrl-0 = <&pinctrl_ov5640>;
266                 reg = <0x10>;
267                 clocks = <&clks IMX6QDL_CLK_CKO>;
268                 clock-names = "xclk";
269                 DOVDD-supply = <&reg_mipi>;
270                 AVDD-supply = <&reg_mipi>;
271                 DVDD-supply = <&reg_mipi>;
272                 reset-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
273                 powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
275                 port {
276                         ov5640_to_mipi_csi2: endpoint {
277                                 remote-endpoint = <&mipi_csi2_in>;
278                                 clock-lanes = <0>;
279                                 data-lanes = <1 2>;
280                         };
281                 };
282         };
284         pcf8575: gpio@20 {
285                 pinctrl-names = "default";
286                 pinctrl-0 = <&pinctrl_pcf8574>;
287                 compatible = "nxp,pcf8575";
288                 reg = <0x20>;
289                 interrupt-parent = <&gpio6>;
290                 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
291                 gpio-controller;
292                 #gpio-cells = <2>;
293                 interrupt-controller;
294                 #interrupt-cells = <2>;
295                 lines-initial-states = <0x0710>;
296                 wakeup-source;
297         };
300 &ipu1_csi1_from_mipi_vc1 {
301         clock-lanes = <0>;
302         data-lanes = <1 2>;
305 &mipi_csi {
306         status = "okay";
308         port@0 {
309                 reg = <0>;
311                 mipi_csi2_in: endpoint {
312                         remote-endpoint = <&ov5640_to_mipi_csi2>;
313                         clock-lanes = <0>;
314                         data-lanes = <1 2>;
315                 };
316         };
319 &pcie {
320         pinctrl-names = "default";
321         pinctrl-0 = <&pinctrl_pcie>;
322         reset-gpio = <&gpio1 9 GPIO_ACTIVE_LOW>;
323         vpcie-supply = <&reg_pcie>;
324         status = "okay";
327 &pwm3 {
328         pinctrl-names = "default";
329         pinctrl-0 = <&pinctrl_pwm3>;
332 &snvs_pwrkey {
333         status = "okay";
336 &ssi2 {
337         status = "okay";
340 &uart3 {
341         pinctrl-names = "default";
342         pinctrl-0 = <&pinctrl_uart3>;
343         status = "okay";
346 &usbh1 {
347         vbus-supply = <&reg_usb_h1_vbus>;
348         status = "okay";
351 &usbotg {
352         vbus-supply = <&reg_usb_otg_vbus>;
353         pinctrl-names = "default";
354         pinctrl-0 = <&pinctrl_usbotg>;
355         disable-over-current;
356         dr_mode = "otg";
357         status = "okay";
360 &usdhc2 {
361         pinctrl-names = "default";
362         pinctrl-0 = <&pinctrl_usdhc2>;
363         pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
364         pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
365         vmmc-supply = <&reg_3v3>;
366         no-1-8-v;
367         keep-power-in-suspend;
368         cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
369         status = "okay";
372 &iomuxc {
373         pinctrl_audmux: audmuxgrp {
374                 fsl,pins = <
375                         MX6QDL_PAD_DISP0_DAT20__AUD4_TXC  0x130b0
376                         MX6QDL_PAD_DISP0_DAT21__AUD4_TXD  0x110b0
377                         MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0
378                         MX6QDL_PAD_DISP0_DAT23__AUD4_RXD  0x130b0
379                 >;
380         };
382         pinctrl_ecspi1: ecspi1grp {
383                 fsl,pins = <
384                         MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK        0x100b1
385                         MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI        0x100b1
386                         MX6QDL_PAD_KEY_COL1__ECSPI1_MISO        0x100b1
387                         MX6QDL_PAD_KEY_ROW1__GPIO4_IO09         0x1b0b0
388                 >;
389         };
391         pinctrl_enet: enetgrp {
392                 fsl,pins = <
393                         MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b8b0
394                         MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
395                         MX6QDL_PAD_RGMII_TXC__RGMII_TXC         0x1b030
396                         MX6QDL_PAD_RGMII_TD0__RGMII_TD0         0x1b030
397                         MX6QDL_PAD_RGMII_TD1__RGMII_TD1         0x1b030
398                         MX6QDL_PAD_RGMII_TD2__RGMII_TD2         0x1b030
399                         MX6QDL_PAD_RGMII_TD3__RGMII_TD3         0x1b030
400                         MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK    0x100b0
401                         MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b030
402                         MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
403                         MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
404                         MX6QDL_PAD_RGMII_RD0__RGMII_RD0         0x13030
405                         MX6QDL_PAD_RGMII_RD1__RGMII_RD1         0x13030
406                         MX6QDL_PAD_RGMII_RD2__RGMII_RD2         0x1b030
407                         MX6QDL_PAD_RGMII_RD3__RGMII_RD3         0x1b030
408                         MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x13030
409                         MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25      0x1b0b0 /* ENET_INT */
410                         MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24       0x1b0b0 /* ETHR_nRST */
411                 >;
412         };
414         pinctrl_i2c1: i2c1grp {
415                 fsl,pins = <
416                         MX6QDL_PAD_EIM_D21__I2C1_SCL    0x4001b8b1
417                         MX6QDL_PAD_EIM_D28__I2C1_SDA    0x4001b8b1
418                 >;
419         };
421         pinctrl_led0: led0grp {
422             fsl,pins = <
423                 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30        0x1b0b0
424             >;
425         };
427         pinctrl_ov5640: ov5640grp {
428                 fsl,pins = <
429                         MX6QDL_PAD_EIM_D26__GPIO3_IO26  0x1b0b1
430                         MX6QDL_PAD_EIM_D27__GPIO3_IO27  0x1b0b1
431                 >;
432         };
434         pinctrl_pcf8574: pcf8575grp {
435                 fsl,pins = <
436                         MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b0
437                 >;
438         };
440         pinctrl_pcie: pciegrp {
441                 fsl,pins = <
442                         MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0
443                         MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0
444                 >;
445         };
447         pinctrl_pwm3: pwm3grp {
448             fsl,pins = <
449                 MX6QDL_PAD_SD4_DAT1__PWM3_OUT           0x1b0b1
450             >;
451         };
453         pinctrl_reg_1v8: reg1v8grp {
454             fsl,pins = <
455                 MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x1b0b0
456             >;
457         };
459         pinctrl_reg_3v3: reg3v3grp {
460             fsl,pins = <
461                 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26        0x1b0b0
462             >;
463         };
465         pinctrl_reg_audio: reg-audiogrp {
466                 fsl,pins = <
467                         MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
468                 >;
469         };
471         pinctrl_reg_enet: reg-enetgrp {
472                 fsl,pins = <
473                         MX6QDL_PAD_EIM_D31__GPIO3_IO31  0x1b0b0
474                 >;
475         };
477         pinctrl_reg_hdmi: reg-hdmigrp {
478                 fsl,pins = <
479                         MX6QDL_PAD_EIM_D20__GPIO3_IO20  0x1b0b0
480                 >;
481         };
483         pinctrl_reg_mipi: reg-mipigrp {
484                 fsl,pins = <MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b1>;
485         };
487         pinctrl_reg_pcie: reg-pciegrp {
488                 fsl,pins = <
489                         MX6QDL_PAD_GPIO_2__GPIO1_IO02   0x1b0b0
490                         >;
491         };
493         pinctrl_reg_uart3: reguart3grp {
494             fsl,pins = <
495                 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28       0x1b0b0
496             >;
497         };
499         pinctrl_reg_usb_h1_vbus: usbh1grp {
500                 fsl,pins = <
501                         MX6QDL_PAD_GPIO_17__GPIO7_IO12          0x1b0b0
502                 >;
503         };
505         pinctrl_reg_usb_otg: reg-usb-otggrp {
506                 fsl,pins = <
507                         MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x1b0b0
508                 >;
509         };
511         pinctrl_uart3: uart3grp {
512                 fsl,pins = <
513                         MX6QDL_PAD_EIM_D23__UART3_CTS_B         0x1b0b1
514                         MX6QDL_PAD_EIM_D24__UART3_TX_DATA       0x1b0b1
515                         MX6QDL_PAD_EIM_D25__UART3_RX_DATA       0x1b0b1
516                         MX6QDL_PAD_EIM_EB3__UART3_RTS_B         0x1b0b1
517                 >;
518         };
520         pinctrl_usbotg: usbotggrp {
521                 fsl,pins = <
522                         MX6QDL_PAD_GPIO_1__USB_OTG_ID   0xd17059
523                 >;
524         };
526         pinctrl_usdhc2: usdhc2grp {
527                 fsl,pins = <
528                         MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1b0b0 /* CD */
529                         MX6QDL_PAD_SD2_CMD__SD2_CMD             0x17069
530                         MX6QDL_PAD_SD2_CLK__SD2_CLK             0x10069
531                         MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x17069
532                         MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x17069
533                         MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x17069
534                         MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x17069
535                 >;
536         };
538         pinctrl_usdhc2_100mhz: h100-usdhc2-100mhz {
539                 fsl,pins = <
540                         MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1b0b0 /* CD */
541                         MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170b9
542                         MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100b9
543                         MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x170b9
544                         MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x170b9
545                         MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x170b9
546                         MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x170b9
547                 >;
548         };
550         pinctrl_usdhc2_200mhz: h100-usdhc2-200mhz {
551                 fsl,pins = <
552                         MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1b0b0 /* CD */
553                         MX6QDL_PAD_SD2_CMD__SD2_CMD             0x170f9
554                         MX6QDL_PAD_SD2_CLK__SD2_CLK             0x100f9
555                         MX6QDL_PAD_SD2_DAT0__SD2_DATA0          0x170f9
556                         MX6QDL_PAD_SD2_DAT1__SD2_DATA1          0x170f9
557                         MX6QDL_PAD_SD2_DAT2__SD2_DATA2          0x170f9
558                         MX6QDL_PAD_SD2_DAT3__SD2_DATA3          0x170f9
559                 >;
560         };