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