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