xref: /linux/Documentation/devicetree/bindings/media/ti,da850-vpif.txt (revision cf40a76e7d5874bb25f4404eecc58a2e033af885)
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