xref: /linux/Documentation/devicetree/bindings/media/i2c/adv748x.yaml (revision 91bd11a4a56895a9bf03c0be4ff15bd7caaaee0d)
1*91bd11a4SNiklas Söderlund# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*91bd11a4SNiklas Söderlund%YAML 1.2
3*91bd11a4SNiklas Söderlund---
4*91bd11a4SNiklas Söderlund$id: http://devicetree.org/schemas/media/i2c/adv748x.yaml#
5*91bd11a4SNiklas Söderlund$schema: http://devicetree.org/meta-schemas/core.yaml#
6*91bd11a4SNiklas Söderlund
7*91bd11a4SNiklas Söderlundtitle: Analog Devices ADV748X video decoder with HDMI receiver
8*91bd11a4SNiklas Söderlund
9*91bd11a4SNiklas Söderlundmaintainers:
10*91bd11a4SNiklas Söderlund  - Kieran Bingham <kieran.bingham@ideasonboard.com>
11*91bd11a4SNiklas Söderlund  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
12*91bd11a4SNiklas Söderlund
13*91bd11a4SNiklas Söderlunddescription:
14*91bd11a4SNiklas Söderlund  The ADV7481 and ADV7482 are multi format video decoders with an integrated
15*91bd11a4SNiklas Söderlund  HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
16*91bd11a4SNiklas Söderlund  from three input sources HDMI, analog and TTL.
17*91bd11a4SNiklas Söderlund
18*91bd11a4SNiklas Söderlundproperties:
19*91bd11a4SNiklas Söderlund  compatible:
20*91bd11a4SNiklas Söderlund    items:
21*91bd11a4SNiklas Söderlund      - enum:
22*91bd11a4SNiklas Söderlund          - adi,adv7481
23*91bd11a4SNiklas Söderlund          - adi,adv7482
24*91bd11a4SNiklas Söderlund
25*91bd11a4SNiklas Söderlund  reg:
26*91bd11a4SNiklas Söderlund    minItems: 1
27*91bd11a4SNiklas Söderlund    maxItems: 12
28*91bd11a4SNiklas Söderlund    description:
29*91bd11a4SNiklas Söderlund      The ADV748x has up to twelve 256-byte maps that can be accessed via the
30*91bd11a4SNiklas Söderlund      main I2C ports. Each map has it own I2C address and acts as a standard
31*91bd11a4SNiklas Söderlund      slave device on the I2C bus. The main address is mandatory, others are
32*91bd11a4SNiklas Söderlund      optional and remain at default values if not specified.
33*91bd11a4SNiklas Söderlund
34*91bd11a4SNiklas Söderlund  reg-names:
35*91bd11a4SNiklas Söderlund    minItems: 1
36*91bd11a4SNiklas Söderlund    items:
37*91bd11a4SNiklas Söderlund      - const: main
38*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
39*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
40*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
41*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
42*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
43*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
44*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
45*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
46*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
47*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
48*91bd11a4SNiklas Söderlund      - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
49*91bd11a4SNiklas Söderlund
50*91bd11a4SNiklas Söderlund  interrupts: true
51*91bd11a4SNiklas Söderlund
52*91bd11a4SNiklas Söderlund  interrupt-names: true
53*91bd11a4SNiklas Söderlund
54*91bd11a4SNiklas Söderlund  ports:
55*91bd11a4SNiklas Söderlund    $ref: /schemas/graph.yaml#/properties/ports
56*91bd11a4SNiklas Söderlund
57*91bd11a4SNiklas Söderlund    patternProperties:
58*91bd11a4SNiklas Söderlund      "^port@[0-7]$":
59*91bd11a4SNiklas Söderlund        $ref: /schemas/graph.yaml#/properties/port
60*91bd11a4SNiklas Söderlund        description: Input port nodes for analog inputs AIN[0-7].
61*91bd11a4SNiklas Söderlund
62*91bd11a4SNiklas Söderlund    properties:
63*91bd11a4SNiklas Söderlund      port@8:
64*91bd11a4SNiklas Söderlund        $ref: /schemas/graph.yaml#/properties/port
65*91bd11a4SNiklas Söderlund        description: Input port node for HDMI.
66*91bd11a4SNiklas Söderlund
67*91bd11a4SNiklas Söderlund      port@9:
68*91bd11a4SNiklas Söderlund        $ref: /schemas/graph.yaml#/properties/port
69*91bd11a4SNiklas Söderlund        description: Input port node for TTL.
70*91bd11a4SNiklas Söderlund
71*91bd11a4SNiklas Söderlund      port@a:
72*91bd11a4SNiklas Söderlund        $ref: /schemas/graph.yaml#/$defs/port-base
73*91bd11a4SNiklas Söderlund        unevaluatedProperties: false
74*91bd11a4SNiklas Söderlund        description:
75*91bd11a4SNiklas Söderlund          Output port node, single endpoint describing the CSI-2 transmitter TXA.
76*91bd11a4SNiklas Söderlund
77*91bd11a4SNiklas Söderlund        properties:
78*91bd11a4SNiklas Söderlund          endpoint:
79*91bd11a4SNiklas Söderlund            $ref: /schemas/media/video-interfaces.yaml#
80*91bd11a4SNiklas Söderlund            unevaluatedProperties: false
81*91bd11a4SNiklas Söderlund
82*91bd11a4SNiklas Söderlund            properties:
83*91bd11a4SNiklas Söderlund              clock-lanes:
84*91bd11a4SNiklas Söderlund                maxItems: 1
85*91bd11a4SNiklas Söderlund
86*91bd11a4SNiklas Söderlund              data-lanes:
87*91bd11a4SNiklas Söderlund                minItems: 1
88*91bd11a4SNiklas Söderlund                maxItems: 4
89*91bd11a4SNiklas Söderlund
90*91bd11a4SNiklas Söderlund            required:
91*91bd11a4SNiklas Söderlund              - clock-lanes
92*91bd11a4SNiklas Söderlund              - data-lanes
93*91bd11a4SNiklas Söderlund
94*91bd11a4SNiklas Söderlund      port@b:
95*91bd11a4SNiklas Söderlund        $ref: /schemas/graph.yaml#/$defs/port-base
96*91bd11a4SNiklas Söderlund        unevaluatedProperties: false
97*91bd11a4SNiklas Söderlund        description:
98*91bd11a4SNiklas Söderlund          Output port node, single endpoint describing the CSI-2 transmitter TXB.
99*91bd11a4SNiklas Söderlund
100*91bd11a4SNiklas Söderlund        properties:
101*91bd11a4SNiklas Söderlund          endpoint:
102*91bd11a4SNiklas Söderlund            $ref: /schemas/media/video-interfaces.yaml#
103*91bd11a4SNiklas Söderlund            unevaluatedProperties: false
104*91bd11a4SNiklas Söderlund
105*91bd11a4SNiklas Söderlund            properties:
106*91bd11a4SNiklas Söderlund              clock-lanes:
107*91bd11a4SNiklas Söderlund                maxItems: 1
108*91bd11a4SNiklas Söderlund
109*91bd11a4SNiklas Söderlund              data-lanes:
110*91bd11a4SNiklas Söderlund                maxItems: 1
111*91bd11a4SNiklas Söderlund
112*91bd11a4SNiklas Söderlund            required:
113*91bd11a4SNiklas Söderlund              - clock-lanes
114*91bd11a4SNiklas Söderlund              - data-lanes
115*91bd11a4SNiklas Söderlund
116*91bd11a4SNiklas SöderlundallOf:
117*91bd11a4SNiklas Söderlund  - if:
118*91bd11a4SNiklas Söderlund      properties:
119*91bd11a4SNiklas Söderlund        compatible:
120*91bd11a4SNiklas Söderlund          contains:
121*91bd11a4SNiklas Söderlund            const: adi,adv7481
122*91bd11a4SNiklas Söderlund    then:
123*91bd11a4SNiklas Söderlund      properties:
124*91bd11a4SNiklas Söderlund        interrupts:
125*91bd11a4SNiklas Söderlund          minItems: 1
126*91bd11a4SNiklas Söderlund          maxItems: 3
127*91bd11a4SNiklas Söderlund
128*91bd11a4SNiklas Söderlund        interrupt-names:
129*91bd11a4SNiklas Söderlund          minItems: 1
130*91bd11a4SNiklas Söderlund          maxItems: 3
131*91bd11a4SNiklas Söderlund          items:
132*91bd11a4SNiklas Söderlund            enum: [ intrq1, intrq2, intrq3 ]
133*91bd11a4SNiklas Söderlund    else:
134*91bd11a4SNiklas Söderlund      properties:
135*91bd11a4SNiklas Söderlund        interrupts:
136*91bd11a4SNiklas Söderlund          minItems: 1
137*91bd11a4SNiklas Söderlund          maxItems: 2
138*91bd11a4SNiklas Söderlund
139*91bd11a4SNiklas Söderlund        interrupt-names:
140*91bd11a4SNiklas Söderlund          minItems: 1
141*91bd11a4SNiklas Söderlund          maxItems: 2
142*91bd11a4SNiklas Söderlund          items:
143*91bd11a4SNiklas Söderlund            enum: [ intrq1, intrq2 ]
144*91bd11a4SNiklas Söderlund
145*91bd11a4SNiklas SöderlundadditionalProperties: false
146*91bd11a4SNiklas Söderlund
147*91bd11a4SNiklas Söderlundrequired:
148*91bd11a4SNiklas Söderlund  - compatible
149*91bd11a4SNiklas Söderlund  - reg
150*91bd11a4SNiklas Söderlund  - ports
151*91bd11a4SNiklas Söderlund
152*91bd11a4SNiklas Söderlundexamples:
153*91bd11a4SNiklas Söderlund  - |
154*91bd11a4SNiklas Söderlund    #include <dt-bindings/interrupt-controller/irq.h>
155*91bd11a4SNiklas Söderlund
156*91bd11a4SNiklas Söderlund    i2c {
157*91bd11a4SNiklas Söderlund        #address-cells = <1>;
158*91bd11a4SNiklas Söderlund        #size-cells = <0>;
159*91bd11a4SNiklas Söderlund
160*91bd11a4SNiklas Söderlund        video-receiver@70 {
161*91bd11a4SNiklas Söderlund            compatible = "adi,adv7482";
162*91bd11a4SNiklas Söderlund            reg = <0x70 0x71 0x72 0x73 0x74 0x75
163*91bd11a4SNiklas Söderlund                   0x60 0x61 0x62 0x63 0x64 0x65>;
164*91bd11a4SNiklas Söderlund            reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
165*91bd11a4SNiklas Söderlund                        "infoframe", "cbus", "cec", "sdp", "txa", "txb";
166*91bd11a4SNiklas Söderlund
167*91bd11a4SNiklas Söderlund            interrupt-parent = <&gpio6>;
168*91bd11a4SNiklas Söderlund            interrupts = <30 IRQ_TYPE_LEVEL_LOW>, <31 IRQ_TYPE_LEVEL_LOW>;
169*91bd11a4SNiklas Söderlund            interrupt-names = "intrq1", "intrq2";
170*91bd11a4SNiklas Söderlund
171*91bd11a4SNiklas Söderlund            ports {
172*91bd11a4SNiklas Söderlund                #address-cells = <1>;
173*91bd11a4SNiklas Söderlund                #size-cells = <0>;
174*91bd11a4SNiklas Söderlund
175*91bd11a4SNiklas Söderlund                port@7 {
176*91bd11a4SNiklas Söderlund                    reg = <7>;
177*91bd11a4SNiklas Söderlund
178*91bd11a4SNiklas Söderlund                    adv7482_ain7: endpoint {
179*91bd11a4SNiklas Söderlund                        remote-endpoint = <&cvbs_in>;
180*91bd11a4SNiklas Söderlund                    };
181*91bd11a4SNiklas Söderlund                };
182*91bd11a4SNiklas Söderlund
183*91bd11a4SNiklas Söderlund                port@8 {
184*91bd11a4SNiklas Söderlund                    reg = <8>;
185*91bd11a4SNiklas Söderlund
186*91bd11a4SNiklas Söderlund                    adv7482_hdmi: endpoint {
187*91bd11a4SNiklas Söderlund                        remote-endpoint = <&hdmi_in>;
188*91bd11a4SNiklas Söderlund                    };
189*91bd11a4SNiklas Söderlund                };
190*91bd11a4SNiklas Söderlund
191*91bd11a4SNiklas Söderlund                port@a {
192*91bd11a4SNiklas Söderlund                    reg = <10>;
193*91bd11a4SNiklas Söderlund
194*91bd11a4SNiklas Söderlund                    adv7482_txa: endpoint {
195*91bd11a4SNiklas Söderlund                        clock-lanes = <0>;
196*91bd11a4SNiklas Söderlund                        data-lanes = <1 2 3 4>;
197*91bd11a4SNiklas Söderlund                        remote-endpoint = <&csi40_in>;
198*91bd11a4SNiklas Söderlund                    };
199*91bd11a4SNiklas Söderlund                };
200*91bd11a4SNiklas Söderlund
201*91bd11a4SNiklas Söderlund                port@b {
202*91bd11a4SNiklas Söderlund                    reg = <11>;
203*91bd11a4SNiklas Söderlund
204*91bd11a4SNiklas Söderlund                    adv7482_txb: endpoint {
205*91bd11a4SNiklas Söderlund                        clock-lanes = <0>;
206*91bd11a4SNiklas Söderlund                        data-lanes = <1>;
207*91bd11a4SNiklas Söderlund                        remote-endpoint = <&csi20_in>;
208*91bd11a4SNiklas Söderlund                    };
209*91bd11a4SNiklas Söderlund                };
210*91bd11a4SNiklas Söderlund            };
211*91bd11a4SNiklas Söderlund        };
212*91bd11a4SNiklas Söderlund    };
213