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