hc
2023-02-14 0cc9b7c44253c93447ddf73e206fbdbb3d9f16b1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
* Analog Devices ADV748X video decoder with HDMI receiver
 
The ADV7481 and ADV7482 are multi format video decoders with an integrated
HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
from three input sources HDMI, analog and TTL.
 
Required Properties:
 
  - compatible: Must contain one of the following
    - "adi,adv7481" for the ADV7481
    - "adi,adv7482" for the ADV7482
 
  - reg: I2C slave address
 
Optional Properties:
 
  - interrupt-names: Should specify the interrupts as "intrq1", "intrq2" and/or
            "intrq3". All interrupts are optional. The "intrq3" interrupt
            is only available on the adv7481
  - interrupts: Specify the interrupt lines for the ADV748x
 
The device node must contain one 'port' child node per device input and output
port, in accordance with the video interface bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
are numbered as follows.
 
     Name        Type        Port
   ---------------------------------------
     AIN0        sink        0
     AIN1        sink        1
     AIN2        sink        2
     AIN3        sink        3
     AIN4        sink        4
     AIN5        sink        5
     AIN6        sink        6
     AIN7        sink        7
     HDMI        sink        8
     TTL        sink        9
     TXA        source        10
     TXB        source        11
 
The digital output port nodes must contain at least one endpoint.
 
Ports are optional if they are not connected to anything at the hardware level.
 
Example:
 
   video-receiver@70 {
       compatible = "adi,adv7482";
       reg = <0x70>;
 
       #address-cells = <1>;
       #size-cells = <0>;
 
       interrupt-parent = <&gpio6>;
       interrupt-names = "intrq1", "intrq2";
       interrupts = <30 IRQ_TYPE_LEVEL_LOW>,
                <31 IRQ_TYPE_LEVEL_LOW>;
 
       port@7 {
           reg = <7>;
 
           adv7482_ain7: endpoint {
               remote-endpoint = <&cvbs_in>;
           };
       };
 
       port@8 {
           reg = <8>;
 
           adv7482_hdmi: endpoint {
               remote-endpoint = <&hdmi_in>;
           };
       };
 
       port@a {
           reg = <10>;
 
           adv7482_txa: endpoint {
               clock-lanes = <0>;
               data-lanes = <1 2 3 4>;
               remote-endpoint = <&csi40_in>;
           };
       };
 
       port@b {
           reg = <11>;
 
           adv7482_txb: endpoint {
               clock-lanes = <0>;
               data-lanes = <1>;
               remote-endpoint = <&csi20_in>;
           };
       };
   };