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