0001 // SPDX-License-Identifier: GPL-2.0
0002 //
0003 // Copyright (C) 2019 Logic PD, Inc.
0004
0005 / {
0006 keyboard {
0007 compatible = "gpio-keys";
0008
0009 btn0 {
0010 gpios = <&pcf8575 0 GPIO_ACTIVE_LOW>;
0011 label = "btn0";
0012 linux,code = <KEY_WAKEUP>;
0013 debounce-interval = <10>;
0014 wakeup-source;
0015 };
0016
0017 btn1 {
0018 gpios = <&pcf8575 1 GPIO_ACTIVE_LOW>;
0019 label = "btn1";
0020 linux,code = <KEY_WAKEUP>;
0021 debounce-interval = <10>;
0022 wakeup-source;
0023 };
0024
0025 btn2 {
0026 gpios = <&pcf8575 2 GPIO_ACTIVE_LOW>;
0027 label = "btn2";
0028 linux,code = <KEY_WAKEUP>;
0029 debounce-interval = <10>;
0030 wakeup-source;
0031 };
0032
0033 btn3 {
0034 gpios = <&pcf8575 3 GPIO_ACTIVE_LOW>;
0035 label = "btn3";
0036 linux,code = <KEY_WAKEUP>;
0037 debounce-interval = <10>;
0038 wakeup-source;
0039 };
0040
0041 };
0042
0043 leds {
0044 compatible = "gpio-leds";
0045
0046 gen-led0 {
0047 label = "led0";
0048 pinctrl-names = "default";
0049 pinctrl-0 = <&pinctrl_led0>;
0050 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
0051 linux,default-trigger = "cpu0";
0052 };
0053
0054 gen-led1 {
0055 label = "led1";
0056 gpios = <&pcf8575 8 GPIO_ACTIVE_HIGH>;
0057 };
0058
0059 gen-led2 {
0060 label = "led2";
0061 gpios = <&pcf8575 9 GPIO_ACTIVE_HIGH>;
0062 linux,default-trigger = "heartbeat";
0063 };
0064
0065 gen-led3 {
0066 label = "led3";
0067 gpios = <&pcf8575 10 GPIO_ACTIVE_HIGH>;
0068 linux,default-trigger = "default-on";
0069 };
0070 };
0071
0072 reg_usb_otg_vbus: regulator-otg-vbus {
0073 pinctrl-names = "default";
0074 pinctrl-0 = <&pinctrl_reg_usb_otg>;
0075 compatible = "regulator-fixed";
0076 regulator-name = "usb_otg_vbus";
0077 regulator-min-microvolt = <5000000>;
0078 regulator-max-microvolt = <5000000>;
0079 gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
0080 enable-active-high;
0081 };
0082
0083 reg_usb_h1_vbus: regulator-usb-h1-vbus {
0084 pinctrl-names = "default";
0085 pinctrl-0 = <&pinctrl_reg_usb_h1_vbus>;
0086 compatible = "regulator-fixed";
0087 regulator-name = "usb_h1_vbus";
0088 regulator-min-microvolt = <5000000>;
0089 regulator-max-microvolt = <5000000>;
0090 gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
0091 startup-delay-us = <70000>;
0092 enable-active-high;
0093 };
0094
0095 reg_3v3: regulator-3v3 {
0096 pinctrl-names = "default";
0097 pinctrl-0 = <&pinctrl_reg_3v3>;
0098 compatible = "regulator-fixed";
0099 regulator-name = "reg_3v3";
0100 regulator-min-microvolt = <3300000>;
0101 regulator-max-microvolt = <3300000>;
0102 gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
0103 startup-delay-us = <70000>;
0104 enable-active-high;
0105 regulator-always-on;
0106 };
0107
0108 reg_enet: regulator-ethernet {
0109 pinctrl-names = "default";
0110 pinctrl-0 = <&pinctrl_reg_enet>;
0111 compatible = "regulator-fixed";
0112 regulator-name = "ethernet-supply";
0113 regulator-min-microvolt = <3300000>;
0114 regulator-max-microvolt = <3300000>;
0115 gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>;
0116 startup-delay-us = <70000>;
0117 enable-active-high;
0118 vin-supply = <&sw4_reg>;
0119 };
0120
0121 reg_audio: regulator-audio {
0122 pinctrl-names = "default";
0123 pinctrl-0 = <&pinctrl_reg_audio>;
0124 compatible = "regulator-fixed";
0125 regulator-name = "3v3_aud";
0126 regulator-min-microvolt = <3300000>;
0127 regulator-max-microvolt = <3300000>;
0128 gpio = <&gpio1 29 GPIO_ACTIVE_HIGH>;
0129 enable-active-high;
0130 vin-supply = <®_3v3>;
0131 };
0132
0133 reg_hdmi: regulator-hdmi {
0134 pinctrl-names = "default";
0135 pinctrl-0 = <&pinctrl_reg_hdmi>;
0136 compatible = "regulator-fixed";
0137 regulator-name = "hdmi-supply";
0138 regulator-min-microvolt = <3300000>;
0139 regulator-max-microvolt = <3300000>;
0140 gpio = <&gpio3 20 GPIO_ACTIVE_HIGH>;
0141 enable-active-high;
0142 vin-supply = <®_3v3>;
0143 };
0144
0145 reg_uart3: regulator-uart3 {
0146 pinctrl-names = "default";
0147 pinctrl-0 = <&pinctrl_reg_uart3>;
0148 compatible = "regulator-fixed";
0149 regulator-name = "uart3-supply";
0150 gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
0151 enable-active-high;
0152 regulator-always-on;
0153 vin-supply = <®_3v3>;
0154 };
0155
0156 reg_1v8: regulator-1v8 {
0157 pinctrl-names = "default";
0158 pinctrl-0 = <&pinctrl_reg_1v8>;
0159 compatible = "regulator-fixed";
0160 regulator-name = "1v8-supply";
0161 gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>;
0162 enable-active-high;
0163 regulator-always-on;
0164 vin-supply = <®_3v3>;
0165 };
0166
0167 reg_pcie: regulator-pcie {
0168 compatible = "regulator-fixed";
0169 pinctrl-names = "default";
0170 pinctrl-0 = <&pinctrl_reg_pcie>;
0171 regulator-name = "mpcie_3v3";
0172 regulator-min-microvolt = <3300000>;
0173 regulator-max-microvolt = <3300000>;
0174 gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
0175 enable-active-high;
0176 };
0177
0178 reg_mipi: regulator-mipi {
0179 compatible = "regulator-fixed";
0180 pinctrl-names = "default";
0181 pinctrl-0 = <&pinctrl_reg_mipi>;
0182 regulator-name = "mipi_pwr_en";
0183 regulator-min-microvolt = <2800000>;
0184 regulator-max-microvolt = <2800000>;
0185 gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>;
0186 enable-active-high;
0187 };
0188
0189 sound {
0190 compatible = "fsl,imx-audio-wm8962";
0191 model = "wm8962-audio";
0192 ssi-controller = <&ssi2>;
0193 audio-codec = <&wm8962>;
0194 audio-routing =
0195 "Headphone Jack", "HPOUTL",
0196 "Headphone Jack", "HPOUTR",
0197 "Ext Spk", "SPKOUTL",
0198 "Ext Spk", "SPKOUTR",
0199 "AMIC", "MICBIAS",
0200 "IN3R", "AMIC";
0201 mux-int-port = <2>;
0202 mux-ext-port = <4>;
0203 };
0204 };
0205
0206 &audmux {
0207 pinctrl-names = "default";
0208 pinctrl-0 = <&pinctrl_audmux>;
0209 status = "okay";
0210 };
0211
0212 &ecspi1 {
0213 pinctrl-names = "default";
0214 pinctrl-0 = <&pinctrl_ecspi1>;
0215 cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
0216 status = "disabled";
0217 };
0218
0219 &fec {
0220 pinctrl-names = "default";
0221 pinctrl-0 = <&pinctrl_enet>;
0222 phy-mode = "rgmii-id";
0223 phy-reset-duration = <10>;
0224 phy-reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
0225 phy-supply = <®_enet>;
0226 interrupt-parent = <&gpio1>;
0227 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
0228 status = "okay";
0229 };
0230
0231 &i2c1 {
0232 pinctrl-names = "default";
0233 pinctrl-0 = <&pinctrl_i2c1>;
0234 clock-frequency = <400000>;
0235 status = "okay";
0236
0237 wm8962: audio-codec@1a {
0238 compatible = "wlf,wm8962";
0239 reg = <0x1a>;
0240 clocks = <&clks IMX6QDL_CLK_CKO>;
0241 DCVDD-supply = <®_audio>;
0242 DBVDD-supply = <®_audio>;
0243 AVDD-supply = <®_audio>;
0244 CPVDD-supply = <®_audio>;
0245 MICVDD-supply = <®_audio>;
0246 PLLVDD-supply = <®_audio>;
0247 SPKVDD1-supply = <®_audio>;
0248 SPKVDD2-supply = <®_audio>;
0249 gpio-cfg = <
0250 0x0000 /* 0:Default */
0251 0x0000 /* 1:Default */
0252 0x0000 /* 2:FN_DMICCLK */
0253 0x0000 /* 3:Default */
0254 0x0000 /* 4:FN_DMICCDAT */
0255 0x0000 /* 5:Default */
0256 >;
0257 };
0258 };
0259
0260 &i2c3 {
0261 ov5640: camera@10 {
0262 compatible = "ovti,ov5640";
0263 pinctrl-names = "default";
0264 pinctrl-0 = <&pinctrl_ov5640>;
0265 reg = <0x10>;
0266 clocks = <&clks IMX6QDL_CLK_CKO>;
0267 clock-names = "xclk";
0268 DOVDD-supply = <®_mipi>;
0269 AVDD-supply = <®_mipi>;
0270 DVDD-supply = <®_mipi>;
0271 reset-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
0272 powerdown-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
0273
0274 port {
0275 ov5640_to_mipi_csi2: endpoint {
0276 remote-endpoint = <&mipi_csi2_in>;
0277 clock-lanes = <0>;
0278 data-lanes = <1 2>;
0279 };
0280 };
0281 };
0282
0283 pcf8575: gpio@20 {
0284 pinctrl-names = "default";
0285 pinctrl-0 = <&pinctrl_pcf8574>;
0286 compatible = "nxp,pcf8575";
0287 reg = <0x20>;
0288 interrupt-parent = <&gpio6>;
0289 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
0290 gpio-controller;
0291 #gpio-cells = <2>;
0292 interrupt-controller;
0293 #interrupt-cells = <2>;
0294 lines-initial-states = <0x0710>;
0295 wakeup-source;
0296 };
0297 };
0298
0299 &ipu1_csi1_from_mipi_vc1 {
0300 clock-lanes = <0>;
0301 data-lanes = <1 2>;
0302 };
0303
0304 &mipi_csi {
0305 status = "okay";
0306
0307 port@0 {
0308 reg = <0>;
0309
0310 mipi_csi2_in: endpoint {
0311 remote-endpoint = <&ov5640_to_mipi_csi2>;
0312 clock-lanes = <0>;
0313 data-lanes = <1 2>;
0314 };
0315 };
0316 };
0317
0318 &pcie {
0319 pinctrl-names = "default";
0320 pinctrl-0 = <&pinctrl_pcie>;
0321 reset-gpio = <&gpio1 9 GPIO_ACTIVE_LOW>;
0322 vpcie-supply = <®_pcie>;
0323 status = "okay";
0324 };
0325
0326 &pwm3 {
0327 pinctrl-names = "default";
0328 pinctrl-0 = <&pinctrl_pwm3>;
0329 };
0330
0331 &snvs_pwrkey {
0332 status = "okay";
0333 };
0334
0335 &ssi2 {
0336 status = "okay";
0337 };
0338
0339 &uart3 {
0340 pinctrl-names = "default";
0341 pinctrl-0 = <&pinctrl_uart3>;
0342 status = "okay";
0343 };
0344
0345 &usbh1 {
0346 vbus-supply = <®_usb_h1_vbus>;
0347 status = "okay";
0348 };
0349
0350 &usbotg {
0351 vbus-supply = <®_usb_otg_vbus>;
0352 pinctrl-names = "default";
0353 pinctrl-0 = <&pinctrl_usbotg>;
0354 disable-over-current;
0355 dr_mode = "otg";
0356 status = "okay";
0357 };
0358
0359 &usdhc2 {
0360 pinctrl-names = "default";
0361 pinctrl-0 = <&pinctrl_usdhc2>;
0362 pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
0363 pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
0364 vmmc-supply = <®_3v3>;
0365 no-1-8-v;
0366 keep-power-in-suspend;
0367 cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
0368 status = "okay";
0369 };
0370
0371 &iomuxc {
0372 pinctrl_audmux: audmuxgrp {
0373 fsl,pins = <
0374 MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0
0375 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0
0376 MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0
0377 MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x130b0
0378 >;
0379 };
0380
0381 pinctrl_ecspi1: ecspi1grp {
0382 fsl,pins = <
0383 MX6QDL_PAD_KEY_COL0__ECSPI1_SCLK 0x100b1
0384 MX6QDL_PAD_KEY_ROW0__ECSPI1_MOSI 0x100b1
0385 MX6QDL_PAD_KEY_COL1__ECSPI1_MISO 0x100b1
0386 MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
0387 >;
0388 };
0389
0390 pinctrl_enet: enetgrp {
0391 fsl,pins = <
0392 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b8b0
0393 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
0394 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
0395 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
0396 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
0397 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
0398 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
0399 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x100b0
0400 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
0401 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
0402 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
0403 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x13030
0404 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x13030
0405 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
0406 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
0407 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x13030
0408 MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x1b0b0 /* ENET_INT */
0409 MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x1b0b0 /* ETHR_nRST */
0410 >;
0411 };
0412
0413 pinctrl_i2c1: i2c1grp {
0414 fsl,pins = <
0415 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
0416 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
0417 >;
0418 };
0419
0420 pinctrl_led0: led0grp {
0421 fsl,pins = <
0422 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x1b0b0
0423 >;
0424 };
0425
0426 pinctrl_ov5640: ov5640grp {
0427 fsl,pins = <
0428 MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x1b0b1
0429 MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x1b0b1
0430 >;
0431 };
0432
0433 pinctrl_pcf8574: pcf8575grp {
0434 fsl,pins = <
0435 MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x1b0b0
0436 >;
0437 };
0438
0439 pinctrl_pcie: pciegrp {
0440 fsl,pins = <
0441 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0
0442 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x1b0b0
0443 >;
0444 };
0445
0446 pinctrl_pwm3: pwm3grp {
0447 fsl,pins = <
0448 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
0449 >;
0450 };
0451
0452 pinctrl_reg_1v8: reg1v8grp {
0453 fsl,pins = <
0454 MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x1b0b0
0455 >;
0456 };
0457
0458 pinctrl_reg_3v3: reg3v3grp {
0459 fsl,pins = <
0460 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b0
0461 >;
0462 };
0463
0464 pinctrl_reg_audio: reg-audiogrp {
0465 fsl,pins = <
0466 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
0467 >;
0468 };
0469
0470 pinctrl_reg_enet: reg-enetgrp {
0471 fsl,pins = <
0472 MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x1b0b0
0473 >;
0474 };
0475
0476 pinctrl_reg_hdmi: reg-hdmigrp {
0477 fsl,pins = <
0478 MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b0
0479 >;
0480 };
0481
0482 pinctrl_reg_mipi: reg-mipigrp {
0483 fsl,pins = <MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x1b0b1>;
0484 };
0485
0486 pinctrl_reg_pcie: reg-pciegrp {
0487 fsl,pins = <
0488 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
0489 >;
0490 };
0491
0492 pinctrl_reg_uart3: reguart3grp {
0493 fsl,pins = <
0494 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0
0495 >;
0496 };
0497
0498 pinctrl_reg_usb_h1_vbus: usbh1grp {
0499 fsl,pins = <
0500 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0
0501 >;
0502 };
0503
0504 pinctrl_reg_usb_otg: reg-usb-otggrp {
0505 fsl,pins = <
0506 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
0507 >;
0508 };
0509
0510 pinctrl_uart3: uart3grp {
0511 fsl,pins = <
0512 MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1
0513 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
0514 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
0515 MX6QDL_PAD_EIM_EB3__UART3_RTS_B 0x1b0b1
0516 >;
0517 };
0518
0519 pinctrl_usbotg: usbotggrp {
0520 fsl,pins = <
0521 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0xd17059
0522 >;
0523 };
0524
0525 pinctrl_usdhc2: usdhc2grp {
0526 fsl,pins = <
0527 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 /* CD */
0528 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17069
0529 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10069
0530 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17069
0531 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17069
0532 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17069
0533 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17069
0534 >;
0535 };
0536
0537 pinctrl_usdhc2_100mhz: h100-usdhc2-100mhz {
0538 fsl,pins = <
0539 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 /* CD */
0540 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
0541 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
0542 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
0543 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
0544 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
0545 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9
0546 >;
0547 };
0548
0549 pinctrl_usdhc2_200mhz: h100-usdhc2-200mhz {
0550 fsl,pins = <
0551 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0 /* CD */
0552 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
0553 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
0554 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
0555 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
0556 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
0557 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
0558 >;
0559 };
0560
0561 };