# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/media/i2c/adv748x.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Analog Devices ADV748X video decoder with HDMI receiver maintainers: - Kieran Bingham <kieran.bingham@ideasonboard.com> - Niklas Söderlund <niklas.soderlund@ragnatech.se> description: 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. properties: compatible: items: - enum: - adi,adv7481 - adi,adv7482 reg: minItems: 1 maxItems: 12 description: The ADV748x has up to twelve 256-byte maps that can be accessed via the main I2C ports. Each map has it own I2C address and acts as a standard slave device on the I2C bus. The main address is mandatory, others are optional and remain at default values if not specified. reg-names: minItems: 1 items: - const: main - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ] interrupts: true interrupt-names: true ports: $ref: /schemas/graph.yaml#/properties/ports patternProperties: "^port@[0-7]$": $ref: /schemas/graph.yaml#/properties/port description: Input port nodes for analog inputs AIN[0-7]. properties: port@8: $ref: /schemas/graph.yaml#/properties/port description: Input port node for HDMI. port@9: $ref: /schemas/graph.yaml#/properties/port description: Input port node for TTL. port@a: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: Output port node, single endpoint describing the CSI-2 transmitter TXA. properties: endpoint: $ref: /schemas/media/video-interfaces.yaml# unevaluatedProperties: false properties: clock-lanes: maxItems: 1 data-lanes: minItems: 1 maxItems: 4 required: - clock-lanes - data-lanes port@b: $ref: /schemas/graph.yaml#/$defs/port-base unevaluatedProperties: false description: Output port node, single endpoint describing the CSI-2 transmitter TXB. properties: endpoint: $ref: /schemas/media/video-interfaces.yaml# unevaluatedProperties: false properties: clock-lanes: maxItems: 1 data-lanes: maxItems: 1 required: - clock-lanes - data-lanes allOf: - if: properties: compatible: contains: const: adi,adv7481 then: properties: interrupts: minItems: 1 maxItems: 3 interrupt-names: minItems: 1 maxItems: 3 items: enum: [ intrq1, intrq2, intrq3 ] else: properties: interrupts: minItems: 1 maxItems: 2 interrupt-names: minItems: 1 maxItems: 2 items: enum: [ intrq1, intrq2 ] additionalProperties: false required: - compatible - reg - ports examples: - | #include <dt-bindings/interrupt-controller/irq.h> i2c { #address-cells = <1>; #size-cells = <0>; video-receiver@70 { compatible = "adi,adv7482"; reg = <0x70 0x71 0x72 0x73 0x74 0x75 0x60 0x61 0x62 0x63 0x64 0x65>; reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater", "infoframe", "cbus", "cec", "sdp", "txa", "txb"; interrupt-parent = <&gpio6>; interrupts = <30 IRQ_TYPE_LEVEL_LOW>, <31 IRQ_TYPE_LEVEL_LOW>; interrupt-names = "intrq1", "intrq2"; ports { #address-cells = <1>; #size-cells = <0>; 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>; }; }; }; }; };