xref: /freebsd/sys/contrib/device-tree/Bindings/media/ti,da850-vpif.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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