xref: /freebsd-src/sys/contrib/device-tree/Bindings/media/i2c/adv748x.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Analog Devices ADV748X video decoder with HDMI receiver
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotThe ADV7481 and ADV7482 are multi format video decoders with an integrated
4*c66ec88fSEmmanuel VadotHDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
5*c66ec88fSEmmanuel Vadotfrom three input sources HDMI, analog and TTL.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired Properties:
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot  - compatible: Must contain one of the following
10*c66ec88fSEmmanuel Vadot    - "adi,adv7481" for the ADV7481
11*c66ec88fSEmmanuel Vadot    - "adi,adv7482" for the ADV7482
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel Vadot  - reg: I2C slave addresses
14*c66ec88fSEmmanuel Vadot    The ADV748x has up to twelve 256-byte maps that can be accessed via the
15*c66ec88fSEmmanuel Vadot    main I2C ports. Each map has it own I2C address and acts as a standard
16*c66ec88fSEmmanuel Vadot    slave device on the I2C bus. The main address is mandatory, others are
17*c66ec88fSEmmanuel Vadot    optional and remain at default values if not specified.
18*c66ec88fSEmmanuel Vadot
19*c66ec88fSEmmanuel VadotOptional Properties:
20*c66ec88fSEmmanuel Vadot
21*c66ec88fSEmmanuel Vadot  - interrupt-names: Should specify the interrupts as "intrq1", "intrq2" and/or
22*c66ec88fSEmmanuel Vadot		     "intrq3". All interrupts are optional. The "intrq3" interrupt
23*c66ec88fSEmmanuel Vadot		     is only available on the adv7481
24*c66ec88fSEmmanuel Vadot  - interrupts: Specify the interrupt lines for the ADV748x
25*c66ec88fSEmmanuel Vadot  - reg-names : Names of maps with programmable addresses.
26*c66ec88fSEmmanuel Vadot		It shall contain all maps needing a non-default address.
27*c66ec88fSEmmanuel Vadot		Possible map names are:
28*c66ec88fSEmmanuel Vadot		  "main", "dpll", "cp", "hdmi", "edid", "repeater",
29*c66ec88fSEmmanuel Vadot		  "infoframe", "cbus", "cec", "sdp", "txa", "txb"
30*c66ec88fSEmmanuel Vadot
31*c66ec88fSEmmanuel VadotThe device node must contain one 'port' child node per device input and output
32*c66ec88fSEmmanuel Vadotport, in accordance with the video interface bindings defined in
33*c66ec88fSEmmanuel VadotDocumentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
34*c66ec88fSEmmanuel Vadotare numbered as follows.
35*c66ec88fSEmmanuel Vadot
36*c66ec88fSEmmanuel Vadot	  Name		Type		Port
37*c66ec88fSEmmanuel Vadot	---------------------------------------
38*c66ec88fSEmmanuel Vadot	  AIN0		sink		0
39*c66ec88fSEmmanuel Vadot	  AIN1		sink		1
40*c66ec88fSEmmanuel Vadot	  AIN2		sink		2
41*c66ec88fSEmmanuel Vadot	  AIN3		sink		3
42*c66ec88fSEmmanuel Vadot	  AIN4		sink		4
43*c66ec88fSEmmanuel Vadot	  AIN5		sink		5
44*c66ec88fSEmmanuel Vadot	  AIN6		sink		6
45*c66ec88fSEmmanuel Vadot	  AIN7		sink		7
46*c66ec88fSEmmanuel Vadot	  HDMI		sink		8
47*c66ec88fSEmmanuel Vadot	  TTL		sink		9
48*c66ec88fSEmmanuel Vadot	  TXA		source		10
49*c66ec88fSEmmanuel Vadot	  TXB		source		11
50*c66ec88fSEmmanuel Vadot
51*c66ec88fSEmmanuel VadotThe digital output port nodes, when present, shall contain at least one
52*c66ec88fSEmmanuel Vadotendpoint. Each of those endpoints shall contain the data-lanes property as
53*c66ec88fSEmmanuel Vadotdescribed in video-interfaces.txt.
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel VadotRequired source endpoint properties:
56*c66ec88fSEmmanuel Vadot  - data-lanes: an array of physical data lane indexes
57*c66ec88fSEmmanuel Vadot    The accepted value(s) for this property depends on which of the two
58*c66ec88fSEmmanuel Vadot    sources are described. For TXA 1, 2 or 4 data lanes can be described
59*c66ec88fSEmmanuel Vadot    while for TXB only 1 data lane is valid. See video-interfaces.txt
60*c66ec88fSEmmanuel Vadot    for detailed description.
61*c66ec88fSEmmanuel Vadot
62*c66ec88fSEmmanuel VadotPorts are optional if they are not connected to anything at the hardware level.
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel VadotExample:
65*c66ec88fSEmmanuel Vadot
66*c66ec88fSEmmanuel Vadot	video-receiver@70 {
67*c66ec88fSEmmanuel Vadot		compatible = "adi,adv7482";
68*c66ec88fSEmmanuel Vadot		reg = <0x70 0x71 0x72 0x73 0x74 0x75
69*c66ec88fSEmmanuel Vadot		       0x60 0x61 0x62 0x63 0x64 0x65>;
70*c66ec88fSEmmanuel Vadot		reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
71*c66ec88fSEmmanuel Vadot			    "infoframe", "cbus", "cec", "sdp", "txa", "txb";
72*c66ec88fSEmmanuel Vadot
73*c66ec88fSEmmanuel Vadot		#address-cells = <1>;
74*c66ec88fSEmmanuel Vadot		#size-cells = <0>;
75*c66ec88fSEmmanuel Vadot
76*c66ec88fSEmmanuel Vadot		interrupt-parent = <&gpio6>;
77*c66ec88fSEmmanuel Vadot		interrupt-names = "intrq1", "intrq2";
78*c66ec88fSEmmanuel Vadot		interrupts = <30 IRQ_TYPE_LEVEL_LOW>,
79*c66ec88fSEmmanuel Vadot			     <31 IRQ_TYPE_LEVEL_LOW>;
80*c66ec88fSEmmanuel Vadot
81*c66ec88fSEmmanuel Vadot		port@7 {
82*c66ec88fSEmmanuel Vadot			reg = <7>;
83*c66ec88fSEmmanuel Vadot
84*c66ec88fSEmmanuel Vadot			adv7482_ain7: endpoint {
85*c66ec88fSEmmanuel Vadot				remote-endpoint = <&cvbs_in>;
86*c66ec88fSEmmanuel Vadot			};
87*c66ec88fSEmmanuel Vadot		};
88*c66ec88fSEmmanuel Vadot
89*c66ec88fSEmmanuel Vadot		port@8 {
90*c66ec88fSEmmanuel Vadot			reg = <8>;
91*c66ec88fSEmmanuel Vadot
92*c66ec88fSEmmanuel Vadot			adv7482_hdmi: endpoint {
93*c66ec88fSEmmanuel Vadot				remote-endpoint = <&hdmi_in>;
94*c66ec88fSEmmanuel Vadot			};
95*c66ec88fSEmmanuel Vadot		};
96*c66ec88fSEmmanuel Vadot
97*c66ec88fSEmmanuel Vadot		port@a {
98*c66ec88fSEmmanuel Vadot			reg = <10>;
99*c66ec88fSEmmanuel Vadot
100*c66ec88fSEmmanuel Vadot			adv7482_txa: endpoint {
101*c66ec88fSEmmanuel Vadot				clock-lanes = <0>;
102*c66ec88fSEmmanuel Vadot				data-lanes = <1 2 3 4>;
103*c66ec88fSEmmanuel Vadot				remote-endpoint = <&csi40_in>;
104*c66ec88fSEmmanuel Vadot			};
105*c66ec88fSEmmanuel Vadot		};
106*c66ec88fSEmmanuel Vadot
107*c66ec88fSEmmanuel Vadot		port@b {
108*c66ec88fSEmmanuel Vadot			reg = <11>;
109*c66ec88fSEmmanuel Vadot
110*c66ec88fSEmmanuel Vadot			adv7482_txb: endpoint {
111*c66ec88fSEmmanuel Vadot				clock-lanes = <0>;
112*c66ec88fSEmmanuel Vadot				data-lanes = <1>;
113*c66ec88fSEmmanuel Vadot				remote-endpoint = <&csi20_in>;
114*c66ec88fSEmmanuel Vadot			};
115*c66ec88fSEmmanuel Vadot		};
116*c66ec88fSEmmanuel Vadot	};
117