# 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>; }; }; }; }; ...