0001 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
0002 /*
0003 * Copyright (c) 2016 Protonic Holland
0004 */
0005
0006 /dts-v1/;
0007 #include "imx6dl.dtsi"
0008 #include "imx6qdl-prti6q.dtsi"
0009 #include <dt-bindings/display/sdtv-standards.h>
0010 #include <dt-bindings/input/input.h>
0011 #include <dt-bindings/leds/common.h>
0012 #include <dt-bindings/sound/fsl-imx-audmux.h>
0013
0014 / {
0015 model = "Protonic VT7";
0016 compatible = "prt,prtvt7", "fsl,imx6dl";
0017
0018 memory@10000000 {
0019 device_type = "memory";
0020 reg = <0x10000000 0x20000000>;
0021 };
0022
0023 backlight_lcd: backlight-lcd {
0024 compatible = "pwm-backlight";
0025 pwms = <&pwm1 0 500000 0>;
0026 brightness-levels = <0 20 81 248 1000>;
0027 default-brightness-level = <20>;
0028 num-interpolated-steps = <21>;
0029 power-supply = <®_bl_12v0>;
0030 };
0031
0032 display {
0033 compatible = "fsl,imx-parallel-display";
0034 pinctrl-0 = <&pinctrl_ipu1_disp>;
0035 pinctrl-names = "default";
0036 #address-cells = <1>;
0037 #size-cells = <0>;
0038
0039 port@0 {
0040 reg = <0>;
0041
0042 display_in: endpoint {
0043 remote-endpoint = <&ipu1_di0_disp0>;
0044 };
0045 };
0046
0047 port@1 {
0048 reg = <1>;
0049
0050 display_out: endpoint {
0051 remote-endpoint = <&panel_in>;
0052 };
0053 };
0054 };
0055
0056 iio-hwmon {
0057 compatible = "iio-hwmon";
0058 io-channels = <&vdiv_vaccu>;
0059 };
0060
0061 keys {
0062 compatible = "gpio-keys";
0063 autorepeat;
0064
0065 esc {
0066 label = "GPIO Key ESC";
0067 linux,code = <KEY_ESC>;
0068 gpios = <&gpio_pca 0 GPIO_ACTIVE_LOW>;
0069 };
0070
0071 up {
0072 label = "GPIO Key UP";
0073 linux,code = <KEY_UP>;
0074 gpios = <&gpio_pca 1 GPIO_ACTIVE_LOW>;
0075 };
0076
0077 down {
0078 label = "GPIO Key DOWN";
0079 linux,code = <KEY_DOWN>;
0080 gpios = <&gpio_pca 4 GPIO_ACTIVE_LOW>;
0081 };
0082
0083 enter {
0084 label = "GPIO Key Enter";
0085 linux,code = <KEY_ENTER>;
0086 gpios = <&gpio_pca 3 GPIO_ACTIVE_LOW>;
0087 };
0088
0089 cycle {
0090 label = "GPIO Key CYCLE";
0091 linux,code = <KEY_CYCLEWINDOWS>;
0092 gpios = <&gpio_pca 2 GPIO_ACTIVE_LOW>;
0093 };
0094
0095 f1 {
0096 label = "GPIO Key F1";
0097 linux,code = <KEY_F1>;
0098 gpios = <&gpio_pca 14 GPIO_ACTIVE_LOW>;
0099 };
0100
0101 f2 {
0102 label = "GPIO Key F2";
0103 linux,code = <KEY_F2>;
0104 gpios = <&gpio_pca 13 GPIO_ACTIVE_LOW>;
0105 };
0106
0107 f3 {
0108 label = "GPIO Key F3";
0109 linux,code = <KEY_F3>;
0110 gpios = <&gpio_pca 12 GPIO_ACTIVE_LOW>;
0111 };
0112
0113 f4 {
0114 label = "GPIO Key F4";
0115 linux,code = <KEY_F4>;
0116 gpios = <&gpio_pca 11 GPIO_ACTIVE_LOW>;
0117 };
0118
0119 f5 {
0120 label = "GPIO Key F5";
0121 linux,code = <KEY_F5>;
0122 gpios = <&gpio_pca 10 GPIO_ACTIVE_LOW>;
0123 };
0124
0125 f6 {
0126 label = "GPIO Key F6";
0127 linux,code = <KEY_F6>;
0128 gpios = <&gpio_pca 5 GPIO_ACTIVE_LOW>;
0129 };
0130
0131 f7 {
0132 label = "GPIO Key F7";
0133 linux,code = <KEY_F7>;
0134 gpios = <&gpio_pca 6 GPIO_ACTIVE_LOW>;
0135 };
0136
0137 f8 {
0138 label = "GPIO Key F8";
0139 linux,code = <KEY_F8>;
0140 gpios = <&gpio_pca 7 GPIO_ACTIVE_LOW>;
0141 };
0142
0143 f9 {
0144 label = "GPIO Key F9";
0145 linux,code = <KEY_F9>;
0146 gpios = <&gpio_pca 8 GPIO_ACTIVE_LOW>;
0147 };
0148
0149 f10 {
0150 label = "GPIO Key F10";
0151 linux,code = <KEY_F10>;
0152 gpios = <&gpio_pca 9 GPIO_ACTIVE_LOW>;
0153 };
0154 };
0155
0156 leds {
0157 compatible = "gpio-leds";
0158 pinctrl-names = "default";
0159 pinctrl-0 = <&pinctrl_leds>;
0160
0161 led-debug0 {
0162 function = LED_FUNCTION_STATUS;
0163 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
0164 linux,default-trigger = "heartbeat";
0165 };
0166 };
0167
0168 panel {
0169 compatible = "innolux,g070y2-t02";
0170 backlight = <&backlight_lcd>;
0171 power-supply = <®_3v3>;
0172
0173 port {
0174 panel_in: endpoint {
0175 remote-endpoint = <&display_out>;
0176 };
0177 };
0178 };
0179
0180 connector {
0181 compatible = "composite-video-connector";
0182 label = "Composite0";
0183 sdtv-standards = <SDTV_STD_PAL_B>;
0184
0185 port {
0186 comp0_out: endpoint {
0187 remote-endpoint = <&tvp5150_comp0_in>;
0188 };
0189 };
0190 };
0191
0192 reg_bl_12v0: regulator-bl-12v0 {
0193 compatible = "regulator-fixed";
0194 pinctrl-names = "default";
0195 pinctrl-0 = <&pinctrl_reg_bl_12v0>;
0196 regulator-name = "bl-12v0";
0197 regulator-min-microvolt = <12000000>;
0198 regulator-max-microvolt = <12000000>;
0199 gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
0200 enable-active-high;
0201 };
0202
0203 reg_3v3: regulator-3v3 {
0204 compatible = "regulator-fixed";
0205 regulator-name = "3v3";
0206 regulator-min-microvolt = <3300000>;
0207 regulator-max-microvolt = <3300000>;
0208 };
0209
0210 reg_1v8: regulator-1v8 {
0211 compatible = "regulator-fixed";
0212 regulator-name = "1v8";
0213 regulator-min-microvolt = <1800000>;
0214 regulator-max-microvolt = <1800000>;
0215 };
0216
0217 sound {
0218 compatible = "simple-audio-card";
0219 simple-audio-card,name = "prti6q-sgtl5000";
0220 simple-audio-card,format = "i2s";
0221 simple-audio-card,widgets =
0222 "Microphone", "Microphone Jack",
0223 "Line", "Line In Jack",
0224 "Headphone", "Headphone Jack",
0225 "Speaker", "External Speaker";
0226 simple-audio-card,routing =
0227 "MIC_IN", "Microphone Jack",
0228 "LINE_IN", "Line In Jack",
0229 "Headphone Jack", "HP_OUT",
0230 "External Speaker", "LINE_OUT";
0231
0232 simple-audio-card,cpu {
0233 sound-dai = <&ssi1>;
0234 system-clock-frequency = <0>;
0235 };
0236
0237 simple-audio-card,codec {
0238 sound-dai = <&sgtl5000>;
0239 bitclock-master;
0240 frame-master;
0241 };
0242 };
0243
0244 thermal-zones {
0245 chassis-thermal {
0246 polling-delay = <20000>;
0247 polling-delay-passive = <0>;
0248 thermal-sensors = <&tsens0>;
0249 };
0250
0251 touch-thermal0 {
0252 polling-delay = <20000>;
0253 polling-delay-passive = <0>;
0254 thermal-sensors = <&touch_temp0>;
0255 };
0256
0257 touch-thermal1 {
0258 polling-delay = <20000>;
0259 polling-delay-passive = <0>;
0260 thermal-sensors = <&touch_temp1>;
0261 };
0262 };
0263
0264 touchscreen {
0265 compatible = "resistive-adc-touch";
0266 io-channels = <&adc_ts 1>, <&adc_ts 3>, <&adc_ts 4>,
0267 <&adc_ts 5>;
0268 io-channel-names = "y", "z1", "z2", "x";
0269 touchscreen-min-pressure = <64687>;
0270 touchscreen-inverted-x;
0271 touchscreen-inverted-y;
0272 touchscreen-x-plate-ohms = <300>;
0273 touchscreen-y-plate-ohms = <800>;
0274 };
0275
0276 touch_temp0: touch-temperature-sensor0 {
0277 compatible = "generic-adc-thermal";
0278 #thermal-sensor-cells = <0>;
0279 io-channels = <&adc_ts 0>;
0280 io-channel-names = "sensor-channel";
0281 temperature-lookup-table = < (-40000) 736
0282 85000 474>;
0283 };
0284
0285 touch_temp1: touch-temperature-sensor1 {
0286 compatible = "generic-adc-thermal";
0287 #thermal-sensor-cells = <0>;
0288 io-channels = <&adc_ts 7>;
0289 io-channel-names = "sensor-channel";
0290 temperature-lookup-table = < (-40000) 826
0291 85000 609>;
0292 };
0293
0294 vdiv_vaccu: voltage-divider-vaccu {
0295 compatible = "voltage-divider";
0296 io-channels = <&adc_ts 2>;
0297 output-ohms = <2500>;
0298 full-ohms = <64000>;
0299 #io-channel-cells = <0>;
0300 };
0301 };
0302
0303 &audmux {
0304 pinctrl-names = "default";
0305 pinctrl-0 = <&pinctrl_audmux>;
0306 status = "okay";
0307
0308 mux-ssi1 {
0309 fsl,audmux-port = <0>;
0310 fsl,port-config = <
0311 IMX_AUDMUX_V2_PTCR_SYN 0
0312 IMX_AUDMUX_V2_PTCR_TFSEL(2) 0
0313 IMX_AUDMUX_V2_PTCR_TCSEL(2) 0
0314 IMX_AUDMUX_V2_PTCR_TFSDIR 0
0315 IMX_AUDMUX_V2_PTCR_TCLKDIR IMX_AUDMUX_V2_PDCR_RXDSEL(2)
0316 >;
0317 };
0318
0319 mux-pins3 {
0320 fsl,audmux-port = <2>;
0321 fsl,port-config = <
0322 IMX_AUDMUX_V2_PTCR_SYN IMX_AUDMUX_V2_PDCR_RXDSEL(0)
0323 0 IMX_AUDMUX_V2_PDCR_TXRXEN
0324 >;
0325 };
0326 };
0327
0328 &can1 {
0329 pinctrl-0 = <&pinctrl_can1 &pinctrl_can1phy>;
0330 };
0331
0332 &clks {
0333 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>;
0334 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>;
0335 };
0336
0337 &ecspi2 {
0338 cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
0339 pinctrl-names = "default";
0340 pinctrl-0 = <&pinctrl_ecspi2>;
0341 status = "okay";
0342
0343 adc_ts: adc@0 {
0344 compatible = "ti,tsc2046e-adc";
0345 reg = <0>;
0346 pinctrl-0 = <&pinctrl_tsc>;
0347 pinctrl-names = "default";
0348 spi-max-frequency = <1000000>;
0349 interrupts-extended = <&gpio3 20 IRQ_TYPE_LEVEL_LOW>;
0350 #io-channel-cells = <1>;
0351
0352 #address-cells = <1>;
0353 #size-cells = <0>;
0354
0355 channel@1 {
0356 reg = <1>;
0357 settling-time-us = <700>;
0358 oversampling-ratio = <5>;
0359 };
0360
0361 channel@3 {
0362 reg = <3>;
0363 settling-time-us = <700>;
0364 oversampling-ratio = <5>;
0365 };
0366
0367 channel@4 {
0368 reg = <4>;
0369 settling-time-us = <700>;
0370 oversampling-ratio = <5>;
0371 };
0372
0373 channel@5 {
0374 reg = <5>;
0375 settling-time-us = <700>;
0376 oversampling-ratio = <5>;
0377 };
0378 };
0379 };
0380
0381 &i2c1 {
0382 sgtl5000: audio-codec@a {
0383 compatible = "fsl,sgtl5000";
0384 reg = <0xa>;
0385 pinctrl-names = "default";
0386 pinctrl-0 = <&pinctrl_codec>;
0387 #sound-dai-cells = <0>;
0388 clocks = <&clks 201>;
0389 VDDA-supply = <®_3v3>;
0390 VDDIO-supply = <®_3v3>;
0391 VDDD-supply = <®_1v8>;
0392 };
0393
0394 video@5c {
0395 compatible = "ti,tvp5150";
0396 reg = <0x5c>;
0397
0398 #address-cells = <1>;
0399 #size-cells = <0>;
0400
0401 port@0 {
0402 reg = <0>;
0403
0404 tvp5150_comp0_in: endpoint {
0405 remote-endpoint = <&comp0_out>;
0406 };
0407 };
0408
0409 /* Output port 2 is video output pad */
0410 port@2 {
0411 reg = <2>;
0412
0413 tvp5151_to_ipu1_csi0_mux: endpoint {
0414 remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
0415 };
0416 };
0417 };
0418 };
0419
0420 &i2c3 {
0421 rtc@51 {
0422 compatible = "nxp,pcf8563";
0423 reg = <0x51>;
0424 };
0425
0426 tsens0: temperature-sensor@70 {
0427 compatible = "ti,tmp103";
0428 reg = <0x70>;
0429 #thermal-sensor-cells = <0>;
0430 };
0431
0432 gpio_pca: gpio@74 {
0433 compatible = "nxp,pca9539";
0434 reg = <0x74>;
0435 interrupts-extended = <&gpio4 5 IRQ_TYPE_LEVEL_LOW>;
0436 #gpio-cells = <2>;
0437 gpio-controller;
0438 };
0439 };
0440
0441 &ipu1 {
0442 pinctrl-names = "default";
0443 pinctrl-0 = <&pinctrl_ipu1_csi0>;
0444 status = "okay";
0445 };
0446
0447 &ipu1_di0_disp0 {
0448 remote-endpoint = <&display_in>;
0449 };
0450
0451 &ipu1_csi0_mux_from_parallel_sensor {
0452 remote-endpoint = <&tvp5151_to_ipu1_csi0_mux>;
0453 };
0454
0455 &pwm1 {
0456 pinctrl-names = "default";
0457 pinctrl-0 = <&pinctrl_pwm1>;
0458 status = "okay";
0459 };
0460
0461 &snvs_poweroff {
0462 status = "okay";
0463 };
0464
0465 &snvs_pwrkey {
0466 status = "okay";
0467 };
0468
0469 &ssi1 {
0470 status = "okay";
0471 };
0472
0473 &usbh1 {
0474 status = "disabled";
0475 };
0476
0477 &iomuxc {
0478 pinctrl_audmux: audmuxgrp {
0479 fsl,pins = <
0480 MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1 0x030b0
0481 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0
0482 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
0483 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x110b0
0484 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
0485 >;
0486 };
0487
0488 pinctrl_can1phy: can1phy {
0489 fsl,pins = <
0490 /* CAN1_SR */
0491 MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x13070
0492 /* CAN1_TERM */
0493 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0
0494 >;
0495 };
0496
0497 pinctrl_codec: codecgrp {
0498 fsl,pins = <
0499 /* AUDIO_nRESET */
0500 MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 0x1f0b0
0501 >;
0502 };
0503
0504 pinctrl_ecspi2: ecspi2grp {
0505 fsl,pins = <
0506 MX6QDL_PAD_EIM_OE__ECSPI2_MISO 0x100b1
0507 MX6QDL_PAD_EIM_CS0__ECSPI2_SCLK 0x100b1
0508 MX6QDL_PAD_EIM_CS1__ECSPI2_MOSI 0x100b1
0509 MX6QDL_PAD_EIM_RW__GPIO2_IO26 0x000b1
0510 >;
0511 };
0512
0513 pinctrl_ipu1_csi0: ipu1csi0grp {
0514 fsl,pins = <
0515 MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0
0516 MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0
0517 MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0
0518 MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x1b0b0
0519 MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x1b0b0
0520 MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x1b0b0
0521 MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x1b0b0
0522 MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x1b0b0
0523 MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
0524 /* ITU656_nRESET */
0525 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
0526 /* ITU656_nPDN */
0527 MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20 0x1b0b0
0528 >;
0529 };
0530
0531 pinctrl_ipu1_disp: ipudisp1grp {
0532 fsl,pins = <
0533 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0xb0
0534 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0xb0
0535
0536 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0xb0
0537 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0xb0
0538 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0xb0
0539 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0xb0
0540 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0xb0
0541 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0xb0
0542 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0xb0
0543 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0xb0
0544
0545 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0xb0
0546 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0xb0
0547 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0xb0
0548 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0xb0
0549 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0xb0
0550 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0xb0
0551 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0xb0
0552 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0xb0
0553
0554 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0xb0
0555 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0xb0
0556 MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0xb0
0557 MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0xb0
0558 MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0xb0
0559 MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0xb0
0560 MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0xb0
0561 MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0xb0
0562 >;
0563 };
0564
0565 pinctrl_leds: ledsgrp {
0566 fsl,pins = <
0567 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0
0568 >;
0569 };
0570
0571 pinctrl_pwm1: pwm1grp {
0572 fsl,pins = <
0573 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b0
0574 >;
0575 };
0576
0577 pinctrl_reg_bl_12v0: 12blgrp {
0578 fsl,pins = <
0579 MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0
0580 >;
0581 };
0582
0583 pinctrl_tsc: tscgrp {
0584
0585 fsl,pins = <
0586 MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b0
0587 MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b0
0588 >;
0589 };
0590 };