161 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
$id: http://devicetree.org/schemas/media/i2c/adv7604.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: Analog Devices ADV7604/10/11/12 video decoder with HDMI receiver
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - Hans Verkuil <hverkuil-cisco@xs4all.nl>
 | 
						|
 | 
						|
description:
 | 
						|
  The ADV7604 and ADV7610/11/12 are multiformat video decoders with
 | 
						|
  an integrated HDMI receiver. The ADV7604 has four multiplexed HDMI inputs
 | 
						|
  and one analog input, and the ADV7610/11 have one HDMI input and no analog
 | 
						|
  input. The ADV7612 is similar to the ADV7610/11 but has 2 HDMI inputs.
 | 
						|
 | 
						|
  These device tree bindings support the ADV7610/11/12 only at the moment.
 | 
						|
 | 
						|
properties:
 | 
						|
  compatible:
 | 
						|
    items:
 | 
						|
      - enum:
 | 
						|
          - adi,adv7610
 | 
						|
          - adi,adv7611
 | 
						|
          - adi,adv7612
 | 
						|
 | 
						|
  reg:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 13
 | 
						|
 | 
						|
  reg-names:
 | 
						|
    minItems: 1
 | 
						|
    items:
 | 
						|
      - const: main
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
      - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
 | 
						|
 | 
						|
  interrupts:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  reset-gpios:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  hpd-gpios:
 | 
						|
    minItems: 1
 | 
						|
    description:
 | 
						|
      References to the GPIOs that control the HDMI hot-plug detection pins,
 | 
						|
      one per HDMI input. The active flag indicates the GPIO level that
 | 
						|
      enables hot-plug detection.
 | 
						|
 | 
						|
  default-input:
 | 
						|
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
						|
    enum: [ 0, 1 ]
 | 
						|
    description:
 | 
						|
      Select which input is selected after reset.
 | 
						|
 | 
						|
  ports: true
 | 
						|
 | 
						|
required:
 | 
						|
  - compatible
 | 
						|
  - reg
 | 
						|
  - ports
 | 
						|
 | 
						|
additionalProperties: false
 | 
						|
 | 
						|
allOf:
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            const: adi,adv7611
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        ports:
 | 
						|
          $ref: /schemas/graph.yaml#/properties/ports
 | 
						|
          properties:
 | 
						|
            port@0:
 | 
						|
              $ref: /schemas/graph.yaml#/properties/port
 | 
						|
              description: Input port
 | 
						|
 | 
						|
            port@1:
 | 
						|
              $ref: /schemas/graph.yaml#/properties/port
 | 
						|
              description: Output port
 | 
						|
 | 
						|
          required:
 | 
						|
            - port@1
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            const: adi,adv7612
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        ports:
 | 
						|
          $ref: /schemas/graph.yaml#/properties/ports
 | 
						|
          properties:
 | 
						|
            port@2:
 | 
						|
              $ref: /schemas/graph.yaml#/properties/port
 | 
						|
              description: Output port
 | 
						|
 | 
						|
          patternProperties:
 | 
						|
            "^port@[0-1]$":
 | 
						|
              $ref: /schemas/graph.yaml#/properties/port
 | 
						|
              description: Input port
 | 
						|
 | 
						|
          required:
 | 
						|
            - port@2
 | 
						|
 | 
						|
examples:
 | 
						|
  - |
 | 
						|
    #include <dt-bindings/gpio/gpio.h>
 | 
						|
 | 
						|
    i2c {
 | 
						|
            #address-cells = <1>;
 | 
						|
            #size-cells = <0>;
 | 
						|
 | 
						|
            hdmi_receiver@4c {
 | 
						|
                    compatible = "adi,adv7611";
 | 
						|
                    /*
 | 
						|
                     * The edid page will be accessible @ 0x66 on the I2C bus. All
 | 
						|
                     * other maps will retain their default addresses.
 | 
						|
                     */
 | 
						|
                    reg = <0x4c>, <0x66>;
 | 
						|
                    reg-names = "main", "edid";
 | 
						|
 | 
						|
                    reset-gpios = <&ioexp 0 GPIO_ACTIVE_LOW>;
 | 
						|
                    hpd-gpios = <&ioexp 2 GPIO_ACTIVE_HIGH>;
 | 
						|
                    default-input = <0>;
 | 
						|
 | 
						|
                    ports {
 | 
						|
                            #address-cells = <1>;
 | 
						|
                            #size-cells = <0>;
 | 
						|
 | 
						|
                            port@0 {
 | 
						|
                                    reg = <0>;
 | 
						|
                            };
 | 
						|
 | 
						|
                            port@1 {
 | 
						|
                                    reg = <1>;
 | 
						|
                                    hdmi_in: endpoint {
 | 
						|
                                            remote-endpoint = <&ccdc_in>;
 | 
						|
                                    };
 | 
						|
                            };
 | 
						|
                    };
 | 
						|
 | 
						|
 | 
						|
            };
 | 
						|
    };
 |