1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later 2*724ba675SRob Herring/* 3*724ba675SRob Herring * Copyright 2013 Gateworks Corporation 4*724ba675SRob Herring */ 5*724ba675SRob Herring 6*724ba675SRob Herring/dts-v1/; 7*724ba675SRob Herring#include "imx6q.dtsi" 8*724ba675SRob Herring#include "imx6qdl-gw54xx.dtsi" 9*724ba675SRob Herring#include <dt-bindings/media/tda1997x.h> 10*724ba675SRob Herring 11*724ba675SRob Herring/ { 12*724ba675SRob Herring model = "Gateworks Ventana i.MX6 Dual/Quad GW54XX"; 13*724ba675SRob Herring compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q"; 14*724ba675SRob Herring 15*724ba675SRob Herring sound-digital { 16*724ba675SRob Herring compatible = "simple-audio-card"; 17*724ba675SRob Herring simple-audio-card,name = "tda1997x-audio"; 18*724ba675SRob Herring simple-audio-card,format = "i2s"; 19*724ba675SRob Herring simple-audio-card,bitclock-master = <&sound_codec>; 20*724ba675SRob Herring simple-audio-card,frame-master = <&sound_codec>; 21*724ba675SRob Herring 22*724ba675SRob Herring sound_cpu: simple-audio-card,cpu { 23*724ba675SRob Herring sound-dai = <&ssi2>; 24*724ba675SRob Herring }; 25*724ba675SRob Herring 26*724ba675SRob Herring sound_codec: simple-audio-card,codec { 27*724ba675SRob Herring sound-dai = <&hdmi_receiver>; 28*724ba675SRob Herring }; 29*724ba675SRob Herring }; 30*724ba675SRob Herring}; 31*724ba675SRob Herring 32*724ba675SRob Herring&i2c3 { 33*724ba675SRob Herring adv7180: camera@20 { 34*724ba675SRob Herring compatible = "adi,adv7180"; 35*724ba675SRob Herring pinctrl-names = "default"; 36*724ba675SRob Herring pinctrl-0 = <&pinctrl_adv7180>; 37*724ba675SRob Herring reg = <0x20>; 38*724ba675SRob Herring powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; 39*724ba675SRob Herring interrupt-parent = <&gpio3>; 40*724ba675SRob Herring interrupts = <30 IRQ_TYPE_LEVEL_LOW>; 41*724ba675SRob Herring 42*724ba675SRob Herring port { 43*724ba675SRob Herring adv7180_to_ipu2_csi1_mux: endpoint { 44*724ba675SRob Herring remote-endpoint = <&ipu2_csi1_mux_from_parallel_sensor>; 45*724ba675SRob Herring bus-width = <8>; 46*724ba675SRob Herring }; 47*724ba675SRob Herring }; 48*724ba675SRob Herring }; 49*724ba675SRob Herring 50*724ba675SRob Herring hdmi_receiver: hdmi-receiver@48 { 51*724ba675SRob Herring compatible = "nxp,tda19971"; 52*724ba675SRob Herring pinctrl-names = "default"; 53*724ba675SRob Herring pinctrl-0 = <&pinctrl_tda1997x>; 54*724ba675SRob Herring reg = <0x48>; 55*724ba675SRob Herring interrupt-parent = <&gpio1>; 56*724ba675SRob Herring interrupts = <7 IRQ_TYPE_LEVEL_LOW>; 57*724ba675SRob Herring DOVDD-supply = <®_3p3v>; 58*724ba675SRob Herring AVDD-supply = <&sw4_reg>; 59*724ba675SRob Herring DVDD-supply = <&sw4_reg>; 60*724ba675SRob Herring #sound-dai-cells = <0>; 61*724ba675SRob Herring nxp,audout-format = "i2s"; 62*724ba675SRob Herring nxp,audout-layout = <0>; 63*724ba675SRob Herring nxp,audout-width = <16>; 64*724ba675SRob Herring nxp,audout-mclk-fs = <128>; 65*724ba675SRob Herring /* 66*724ba675SRob Herring * The 8bpp YUV422 semi-planar mode outputs CbCr[11:4] 67*724ba675SRob Herring * and Y[11:4] across 16bits in the same cycle 68*724ba675SRob Herring * which we map to VP[15:08]<->CSI_DATA[19:12] 69*724ba675SRob Herring */ 70*724ba675SRob Herring nxp,vidout-portcfg = 71*724ba675SRob Herring /*G_Y_11_8<->VP[15:12]<->CSI_DATA[19:16]*/ 72*724ba675SRob Herring < TDA1997X_VP24_V15_12 TDA1997X_G_Y_11_8 >, 73*724ba675SRob Herring /*G_Y_7_4<->VP[11:08]<->CSI_DATA[15:12]*/ 74*724ba675SRob Herring < TDA1997X_VP24_V11_08 TDA1997X_G_Y_7_4 >, 75*724ba675SRob Herring /*R_CR_CBCR_11_8<->VP[07:04]<->CSI_DATA[11:08]*/ 76*724ba675SRob Herring < TDA1997X_VP24_V07_04 TDA1997X_R_CR_CBCR_11_8 >, 77*724ba675SRob Herring /*R_CR_CBCR_7_4<->VP[03:00]<->CSI_DATA[07:04]*/ 78*724ba675SRob Herring < TDA1997X_VP24_V03_00 TDA1997X_R_CR_CBCR_7_4 >; 79*724ba675SRob Herring 80*724ba675SRob Herring port { 81*724ba675SRob Herring tda1997x_to_ipu1_csi0_mux: endpoint { 82*724ba675SRob Herring remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>; 83*724ba675SRob Herring bus-width = <16>; 84*724ba675SRob Herring hsync-active = <1>; 85*724ba675SRob Herring vsync-active = <1>; 86*724ba675SRob Herring data-active = <1>; 87*724ba675SRob Herring }; 88*724ba675SRob Herring }; 89*724ba675SRob Herring }; 90*724ba675SRob Herring}; 91*724ba675SRob Herring 92*724ba675SRob Herring&ipu1_csi0_from_ipu1_csi0_mux { 93*724ba675SRob Herring bus-width = <16>; 94*724ba675SRob Herring}; 95*724ba675SRob Herring 96*724ba675SRob Herring&ipu1_csi0_mux_from_parallel_sensor { 97*724ba675SRob Herring remote-endpoint = <&tda1997x_to_ipu1_csi0_mux>; 98*724ba675SRob Herring bus-width = <16>; 99*724ba675SRob Herring}; 100*724ba675SRob Herring 101*724ba675SRob Herring&ipu1_csi0 { 102*724ba675SRob Herring pinctrl-names = "default"; 103*724ba675SRob Herring pinctrl-0 = <&pinctrl_ipu1_csi0>; 104*724ba675SRob Herring}; 105*724ba675SRob Herring 106*724ba675SRob Herring&ipu2_csi1_from_ipu2_csi1_mux { 107*724ba675SRob Herring bus-width = <8>; 108*724ba675SRob Herring}; 109*724ba675SRob Herring 110*724ba675SRob Herring&ipu2_csi1_mux_from_parallel_sensor { 111*724ba675SRob Herring remote-endpoint = <&adv7180_to_ipu2_csi1_mux>; 112*724ba675SRob Herring bus-width = <8>; 113*724ba675SRob Herring}; 114*724ba675SRob Herring 115*724ba675SRob Herring&ipu2_csi1 { 116*724ba675SRob Herring pinctrl-names = "default"; 117*724ba675SRob Herring pinctrl-0 = <&pinctrl_ipu2_csi1>; 118*724ba675SRob Herring}; 119*724ba675SRob Herring 120*724ba675SRob Herring&sata { 121*724ba675SRob Herring status = "okay"; 122*724ba675SRob Herring}; 123*724ba675SRob Herring 124*724ba675SRob Herring&iomuxc { 125*724ba675SRob Herring pinctrl_adv7180: adv7180grp { 126*724ba675SRob Herring fsl,pins = < 127*724ba675SRob Herring MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x0001b0b0 128*724ba675SRob Herring MX6QDL_PAD_EIM_D31__GPIO3_IO31 0x4001b0b0 129*724ba675SRob Herring >; 130*724ba675SRob Herring }; 131*724ba675SRob Herring 132*724ba675SRob Herring pinctrl_ipu1_csi0: ipu1_csi0grp { 133*724ba675SRob Herring fsl,pins = < 134*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT4__IPU1_CSI0_DATA04 0x1b0b0 135*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT5__IPU1_CSI0_DATA05 0x1b0b0 136*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT6__IPU1_CSI0_DATA06 0x1b0b0 137*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT7__IPU1_CSI0_DATA07 0x1b0b0 138*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT8__IPU1_CSI0_DATA08 0x1b0b0 139*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT9__IPU1_CSI0_DATA09 0x1b0b0 140*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT10__IPU1_CSI0_DATA10 0x1b0b0 141*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT11__IPU1_CSI0_DATA11 0x1b0b0 142*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0 143*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0 144*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0 145*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x1b0b0 146*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x1b0b0 147*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x1b0b0 148*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x1b0b0 149*724ba675SRob Herring MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x1b0b0 150*724ba675SRob Herring MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x1b0b0 151*724ba675SRob Herring MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0 152*724ba675SRob Herring MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x1b0b0 153*724ba675SRob Herring >; 154*724ba675SRob Herring }; 155*724ba675SRob Herring 156*724ba675SRob Herring pinctrl_ipu2_csi1: ipu2_csi1grp { 157*724ba675SRob Herring fsl,pins = < 158*724ba675SRob Herring MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19 0x1b0b0 159*724ba675SRob Herring MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18 0x1b0b0 160*724ba675SRob Herring MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17 0x1b0b0 161*724ba675SRob Herring MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16 0x1b0b0 162*724ba675SRob Herring MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15 0x1b0b0 163*724ba675SRob Herring MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14 0x1b0b0 164*724ba675SRob Herring MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13 0x1b0b0 165*724ba675SRob Herring MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12 0x1b0b0 166*724ba675SRob Herring MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC 0x1b0b0 167*724ba675SRob Herring MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC 0x1b0b0 168*724ba675SRob Herring MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK 0x1b0b0 169*724ba675SRob Herring >; 170*724ba675SRob Herring }; 171*724ba675SRob Herring 172*724ba675SRob Herring pinctrl_tda1997x: tda1997xgrp { 173*724ba675SRob Herring fsl,pins = < 174*724ba675SRob Herring MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0 175*724ba675SRob Herring >; 176*724ba675SRob Herring }; 177*724ba675SRob Herring}; 178