233 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			233 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
						|
%YAML 1.2
 | 
						|
---
 | 
						|
 | 
						|
$id: http://devicetree.org/schemas/display/msm/hdmi.yaml#
 | 
						|
$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
						|
 | 
						|
title: Qualcomm Adreno/Snapdragon HDMI output
 | 
						|
 | 
						|
maintainers:
 | 
						|
  - Rob Clark <robdclark@gmail.com>
 | 
						|
 | 
						|
properties:
 | 
						|
  compatible:
 | 
						|
    enum:
 | 
						|
      - qcom,hdmi-tx-8084
 | 
						|
      - qcom,hdmi-tx-8660
 | 
						|
      - qcom,hdmi-tx-8960
 | 
						|
      - qcom,hdmi-tx-8974
 | 
						|
      - qcom,hdmi-tx-8994
 | 
						|
      - qcom,hdmi-tx-8996
 | 
						|
 | 
						|
  clocks:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 5
 | 
						|
 | 
						|
  clock-names:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 5
 | 
						|
 | 
						|
  reg:
 | 
						|
    minItems: 1
 | 
						|
    maxItems: 3
 | 
						|
 | 
						|
  reg-names:
 | 
						|
    minItems: 1
 | 
						|
    items:
 | 
						|
      - const: core_physical
 | 
						|
      - const: qfprom_physical
 | 
						|
      - const: hdcp_physical
 | 
						|
 | 
						|
  interrupts:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  phys:
 | 
						|
    maxItems: 1
 | 
						|
 | 
						|
  phy-names:
 | 
						|
    enum:
 | 
						|
      - hdmi_phy
 | 
						|
      - hdmi-phy
 | 
						|
    deprecated: true
 | 
						|
 | 
						|
  core-vdda-supply:
 | 
						|
    description: phandle to VDDA supply regulator
 | 
						|
 | 
						|
  hdmi-mux-supply:
 | 
						|
    description: phandle to mux regulator
 | 
						|
    deprecated: true
 | 
						|
 | 
						|
  core-vcc-supply:
 | 
						|
    description: phandle to VCC supply regulator
 | 
						|
 | 
						|
  hpd-gpios:
 | 
						|
    maxItems: 1
 | 
						|
    description: hpd pin
 | 
						|
 | 
						|
  qcom,hdmi-tx-mux-en-gpios:
 | 
						|
    maxItems: 1
 | 
						|
    deprecated: true
 | 
						|
    description: HDMI mux enable pin
 | 
						|
 | 
						|
  qcom,hdmi-tx-mux-sel-gpios:
 | 
						|
    maxItems: 1
 | 
						|
    deprecated: true
 | 
						|
    description: HDMI mux select pin
 | 
						|
 | 
						|
  qcom,hdmi-tx-mux-lpm-gpios:
 | 
						|
    maxItems: 1
 | 
						|
    deprecated: true
 | 
						|
    description: HDMI mux lpm pin
 | 
						|
 | 
						|
  '#sound-dai-cells':
 | 
						|
    const: 1
 | 
						|
 | 
						|
  ports:
 | 
						|
    type: object
 | 
						|
    $ref: /schemas/graph.yaml#/properties/ports
 | 
						|
    properties:
 | 
						|
      port@0:
 | 
						|
        $ref: /schemas/graph.yaml#/$defs/port-base
 | 
						|
        description: |
 | 
						|
          Input endpoints of the controller.
 | 
						|
 | 
						|
      port@1:
 | 
						|
        $ref: /schemas/graph.yaml#/$defs/port-base
 | 
						|
        description: |
 | 
						|
          Output endpoints of the controller.
 | 
						|
 | 
						|
    required:
 | 
						|
      - port@0
 | 
						|
 | 
						|
required:
 | 
						|
  - compatible
 | 
						|
  - clocks
 | 
						|
  - clock-names
 | 
						|
  - reg
 | 
						|
  - reg-names
 | 
						|
  - interrupts
 | 
						|
  - phys
 | 
						|
 | 
						|
allOf:
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - qcom,hdmi-tx-8960
 | 
						|
              - qcom,hdmi-tx-8660
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        clocks:
 | 
						|
          minItems: 3
 | 
						|
          maxItems: 3
 | 
						|
        clock-names:
 | 
						|
          items:
 | 
						|
            - const: core
 | 
						|
            - const: master_iface
 | 
						|
            - const: slave_iface
 | 
						|
        core-vcc-supplies: false
 | 
						|
 | 
						|
  - if:
 | 
						|
      properties:
 | 
						|
        compatible:
 | 
						|
          contains:
 | 
						|
            enum:
 | 
						|
              - qcom,hdmi-tx-8974
 | 
						|
              - qcom,hdmi-tx-8084
 | 
						|
              - qcom,hdmi-tx-8994
 | 
						|
              - qcom,hdmi-tx-8996
 | 
						|
    then:
 | 
						|
      properties:
 | 
						|
        clocks:
 | 
						|
          minItems: 5
 | 
						|
        clock-names:
 | 
						|
          items:
 | 
						|
            - const: mdp_core
 | 
						|
            - const: iface
 | 
						|
            - const: core
 | 
						|
            - const: alt_iface
 | 
						|
            - const: extp
 | 
						|
        hdmi-mux-supplies: false
 | 
						|
 | 
						|
additionalProperties: false
 | 
						|
 | 
						|
examples:
 | 
						|
  - |
 | 
						|
    #include <dt-bindings/gpio/gpio.h>
 | 
						|
    #include <dt-bindings/interrupt-controller/irq.h>
 | 
						|
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 | 
						|
    hdmi: hdmi@4a00000 {
 | 
						|
      compatible = "qcom,hdmi-tx-8960";
 | 
						|
      reg-names = "core_physical";
 | 
						|
      reg = <0x04a00000 0x2f0>;
 | 
						|
      interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
 | 
						|
      clock-names = "core",
 | 
						|
                    "master_iface",
 | 
						|
                    "slave_iface";
 | 
						|
      clocks = <&clk 61>,
 | 
						|
               <&clk 72>,
 | 
						|
               <&clk 98>;
 | 
						|
      hpd-gpios = <&msmgpio 72 GPIO_ACTIVE_HIGH>;
 | 
						|
      core-vdda-supply = <&pm8921_hdmi_mvs>;
 | 
						|
      hdmi-mux-supply = <&ext_3p3v>;
 | 
						|
      pinctrl-names = "default", "sleep";
 | 
						|
      pinctrl-0 = <&hpd_active  &ddc_active  &cec_active>;
 | 
						|
      pinctrl-1 = <&hpd_suspend &ddc_suspend &cec_suspend>;
 | 
						|
 | 
						|
      phys = <&hdmi_phy>;
 | 
						|
    };
 | 
						|
  - |
 | 
						|
    #include <dt-bindings/clock/qcom,gcc-msm8996.h>
 | 
						|
    #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
 | 
						|
    #include <dt-bindings/gpio/gpio.h>
 | 
						|
    #include <dt-bindings/interrupt-controller/irq.h>
 | 
						|
    #include <dt-bindings/interrupt-controller/arm-gic.h>
 | 
						|
    hdmi@9a0000 {
 | 
						|
      compatible = "qcom,hdmi-tx-8996";
 | 
						|
      reg = <0x009a0000 0x50c>,
 | 
						|
            <0x00070000 0x6158>,
 | 
						|
            <0x009e0000 0xfff>;
 | 
						|
      reg-names = "core_physical",
 | 
						|
                  "qfprom_physical",
 | 
						|
                  "hdcp_physical";
 | 
						|
 | 
						|
      interrupt-parent = <&mdss>;
 | 
						|
      interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
 | 
						|
 | 
						|
      clocks = <&mmcc MDSS_MDP_CLK>,
 | 
						|
               <&mmcc MDSS_AHB_CLK>,
 | 
						|
               <&mmcc MDSS_HDMI_CLK>,
 | 
						|
               <&mmcc MDSS_HDMI_AHB_CLK>,
 | 
						|
               <&mmcc MDSS_EXTPCLK_CLK>;
 | 
						|
      clock-names = "mdp_core",
 | 
						|
                    "iface",
 | 
						|
                    "core",
 | 
						|
                    "alt_iface",
 | 
						|
                    "extp";
 | 
						|
 | 
						|
      phys = <&hdmi_phy>;
 | 
						|
      #sound-dai-cells = <1>;
 | 
						|
 | 
						|
      pinctrl-names = "default", "sleep";
 | 
						|
      pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
 | 
						|
      pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
 | 
						|
 | 
						|
      core-vdda-supply = <&vreg_l12a_1p8>;
 | 
						|
      core-vcc-supply = <&vreg_s4a_1p8>;
 | 
						|
 | 
						|
      ports {
 | 
						|
        #address-cells = <1>;
 | 
						|
        #size-cells = <0>;
 | 
						|
 | 
						|
        port@0 {
 | 
						|
          reg = <0>;
 | 
						|
          endpoint {
 | 
						|
            remote-endpoint = <&mdp5_intf3_out>;
 | 
						|
          };
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
...
 |