1*c66ec88fSEmmanuel VadotTexas Instruments VPIF 2*c66ec88fSEmmanuel Vadot---------------------- 3*c66ec88fSEmmanuel Vadot 4*c66ec88fSEmmanuel VadotThe TI Video Port InterFace (VPIF) is the primary component for video 5*c66ec88fSEmmanuel Vadotcapture and display on the DA850/AM18x family of TI DaVinci/Sitara 6*c66ec88fSEmmanuel VadotSoCs. 7*c66ec88fSEmmanuel Vadot 8*c66ec88fSEmmanuel VadotTI Document reference: SPRUH82C, Chapter 35 9*c66ec88fSEmmanuel Vadothttp://www.ti.com/lit/pdf/spruh82 10*c66ec88fSEmmanuel Vadot 11*c66ec88fSEmmanuel VadotRequired properties: 12*c66ec88fSEmmanuel Vadot- compatible: must be "ti,da850-vpif" 13*c66ec88fSEmmanuel Vadot- reg: physical base address and length of the registers set for the device; 14*c66ec88fSEmmanuel Vadot- interrupts: should contain IRQ line for the VPIF 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel VadotVideo Capture: 17*c66ec88fSEmmanuel Vadot 18*c66ec88fSEmmanuel VadotVPIF has a 16-bit parallel bus input, supporting 2 8-bit channels or a 19*c66ec88fSEmmanuel Vadotsingle 16-bit channel. It should contain one or two port child nodes 20*c66ec88fSEmmanuel Vadotwith child 'endpoint' node. If there are two ports then port@0 must 21*c66ec88fSEmmanuel Vadotdescribe the input and port@1 output channels. Please refer to the 22*c66ec88fSEmmanuel Vadotbindings defined in 23*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/media/video-interfaces.txt. 24*c66ec88fSEmmanuel Vadot 25*c66ec88fSEmmanuel VadotExample using 2 8-bit input channels, one of which is connected to an 26*c66ec88fSEmmanuel VadotI2C-connected TVP5147 decoder: 27*c66ec88fSEmmanuel Vadot 28*c66ec88fSEmmanuel Vadot vpif: vpif@217000 { 29*c66ec88fSEmmanuel Vadot compatible = "ti,da850-vpif"; 30*c66ec88fSEmmanuel Vadot reg = <0x217000 0x1000>; 31*c66ec88fSEmmanuel Vadot interrupts = <92>; 32*c66ec88fSEmmanuel Vadot 33*c66ec88fSEmmanuel Vadot port@0 { 34*c66ec88fSEmmanuel Vadot vpif_input_ch0: endpoint@0 { 35*c66ec88fSEmmanuel Vadot reg = <0>; 36*c66ec88fSEmmanuel Vadot bus-width = <8>; 37*c66ec88fSEmmanuel Vadot remote-endpoint = <&composite_in>; 38*c66ec88fSEmmanuel Vadot }; 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot vpif_input_ch1: endpoint@1 { 41*c66ec88fSEmmanuel Vadot reg = <1>; 42*c66ec88fSEmmanuel Vadot bus-width = <8>; 43*c66ec88fSEmmanuel Vadot data-shift = <8>; 44*c66ec88fSEmmanuel Vadot }; 45*c66ec88fSEmmanuel Vadot }; 46*c66ec88fSEmmanuel Vadot 47*c66ec88fSEmmanuel Vadot port@1 { 48*c66ec88fSEmmanuel Vadot vpif_output_ch0: endpoint { 49*c66ec88fSEmmanuel Vadot bus-width = <8>; 50*c66ec88fSEmmanuel Vadot remote-endpoint = <&composite_out>; 51*c66ec88fSEmmanuel Vadot }; 52*c66ec88fSEmmanuel Vadot }; 53*c66ec88fSEmmanuel Vadot }; 54*c66ec88fSEmmanuel Vadot 55*c66ec88fSEmmanuel Vadot[ ... ] 56*c66ec88fSEmmanuel Vadot 57*c66ec88fSEmmanuel Vadot&i2c0 { 58*c66ec88fSEmmanuel Vadot 59*c66ec88fSEmmanuel Vadot tvp5147@5d { 60*c66ec88fSEmmanuel Vadot compatible = "ti,tvp5147"; 61*c66ec88fSEmmanuel Vadot reg = <0x5d>; 62*c66ec88fSEmmanuel Vadot 63*c66ec88fSEmmanuel Vadot port { 64*c66ec88fSEmmanuel Vadot composite_in: endpoint { 65*c66ec88fSEmmanuel Vadot hsync-active = <1>; 66*c66ec88fSEmmanuel Vadot vsync-active = <1>; 67*c66ec88fSEmmanuel Vadot pclk-sample = <0>; 68*c66ec88fSEmmanuel Vadot 69*c66ec88fSEmmanuel Vadot /* VPIF channel 0 (lower 8-bits) */ 70*c66ec88fSEmmanuel Vadot remote-endpoint = <&vpif_input_ch0>; 71*c66ec88fSEmmanuel Vadot bus-width = <8>; 72*c66ec88fSEmmanuel Vadot }; 73*c66ec88fSEmmanuel Vadot }; 74*c66ec88fSEmmanuel Vadot }; 75*c66ec88fSEmmanuel Vadot 76*c66ec88fSEmmanuel Vadot adv7343@2a { 77*c66ec88fSEmmanuel Vadot compatible = "adi,adv7343"; 78*c66ec88fSEmmanuel Vadot reg = <0x2a>; 79*c66ec88fSEmmanuel Vadot 80*c66ec88fSEmmanuel Vadot port { 81*c66ec88fSEmmanuel Vadot composite_out: endpoint { 82*c66ec88fSEmmanuel Vadot adi,dac-enable = <1 1 1>; 83*c66ec88fSEmmanuel Vadot adi,sd-dac-enable = <1>; 84*c66ec88fSEmmanuel Vadot 85*c66ec88fSEmmanuel Vadot remote-endpoint = <&vpif_output_ch0>; 86*c66ec88fSEmmanuel Vadot bus-width = <8>; 87*c66ec88fSEmmanuel Vadot }; 88*c66ec88fSEmmanuel Vadot }; 89*c66ec88fSEmmanuel Vadot }; 90*c66ec88fSEmmanuel Vadot}; 91*c66ec88fSEmmanuel Vadot 92*c66ec88fSEmmanuel Vadot 93*c66ec88fSEmmanuel VadotAlternatively, an example when the bus is configured as a single 94*c66ec88fSEmmanuel Vadot16-bit input (e.g. for raw-capture mode): 95*c66ec88fSEmmanuel Vadot 96*c66ec88fSEmmanuel Vadot vpif: vpif@217000 { 97*c66ec88fSEmmanuel Vadot compatible = "ti,da850-vpif"; 98*c66ec88fSEmmanuel Vadot reg = <0x217000 0x1000>; 99*c66ec88fSEmmanuel Vadot interrupts = <92>; 100*c66ec88fSEmmanuel Vadot 101*c66ec88fSEmmanuel Vadot port { 102*c66ec88fSEmmanuel Vadot vpif_ch0: endpoint { 103*c66ec88fSEmmanuel Vadot bus-width = <16>; 104*c66ec88fSEmmanuel Vadot }; 105*c66ec88fSEmmanuel Vadot }; 106*c66ec88fSEmmanuel Vadot }; 107