xref: /openbmc/linux/Documentation/devicetree/bindings/display/msm/hdmi.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
12f14bc38SDmitry Baryshkov# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22f14bc38SDmitry Baryshkov%YAML 1.2
32f14bc38SDmitry Baryshkov---
42f14bc38SDmitry Baryshkov
52f14bc38SDmitry Baryshkov$id: http://devicetree.org/schemas/display/msm/hdmi.yaml#
62f14bc38SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
72f14bc38SDmitry Baryshkov
82f14bc38SDmitry Baryshkovtitle: Qualcomm Adreno/Snapdragon HDMI output
92f14bc38SDmitry Baryshkov
102f14bc38SDmitry Baryshkovmaintainers:
112f14bc38SDmitry Baryshkov  - Rob Clark <robdclark@gmail.com>
122f14bc38SDmitry Baryshkov
132f14bc38SDmitry Baryshkovproperties:
142f14bc38SDmitry Baryshkov  compatible:
152f14bc38SDmitry Baryshkov    enum:
162f14bc38SDmitry Baryshkov      - qcom,hdmi-tx-8084
172f14bc38SDmitry Baryshkov      - qcom,hdmi-tx-8660
182f14bc38SDmitry Baryshkov      - qcom,hdmi-tx-8960
192f14bc38SDmitry Baryshkov      - qcom,hdmi-tx-8974
202f14bc38SDmitry Baryshkov      - qcom,hdmi-tx-8994
212f14bc38SDmitry Baryshkov      - qcom,hdmi-tx-8996
222f14bc38SDmitry Baryshkov
232f14bc38SDmitry Baryshkov  clocks:
242f14bc38SDmitry Baryshkov    minItems: 1
252f14bc38SDmitry Baryshkov    maxItems: 5
262f14bc38SDmitry Baryshkov
272f14bc38SDmitry Baryshkov  clock-names:
282f14bc38SDmitry Baryshkov    minItems: 1
292f14bc38SDmitry Baryshkov    maxItems: 5
302f14bc38SDmitry Baryshkov
312f14bc38SDmitry Baryshkov  reg:
322f14bc38SDmitry Baryshkov    minItems: 1
332f14bc38SDmitry Baryshkov    maxItems: 3
342f14bc38SDmitry Baryshkov
352f14bc38SDmitry Baryshkov  reg-names:
362f14bc38SDmitry Baryshkov    minItems: 1
372f14bc38SDmitry Baryshkov    items:
382f14bc38SDmitry Baryshkov      - const: core_physical
392f14bc38SDmitry Baryshkov      - const: qfprom_physical
402f14bc38SDmitry Baryshkov      - const: hdcp_physical
412f14bc38SDmitry Baryshkov
422f14bc38SDmitry Baryshkov  interrupts:
432f14bc38SDmitry Baryshkov    maxItems: 1
442f14bc38SDmitry Baryshkov
452f14bc38SDmitry Baryshkov  phys:
462f14bc38SDmitry Baryshkov    maxItems: 1
472f14bc38SDmitry Baryshkov
482f14bc38SDmitry Baryshkov  phy-names:
492f14bc38SDmitry Baryshkov    enum:
502f14bc38SDmitry Baryshkov      - hdmi_phy
512f14bc38SDmitry Baryshkov      - hdmi-phy
522f14bc38SDmitry Baryshkov    deprecated: true
532f14bc38SDmitry Baryshkov
542f14bc38SDmitry Baryshkov  core-vdda-supply:
552f14bc38SDmitry Baryshkov    description: phandle to VDDA supply regulator
562f14bc38SDmitry Baryshkov
572f14bc38SDmitry Baryshkov  hdmi-mux-supply:
582f14bc38SDmitry Baryshkov    description: phandle to mux regulator
59*6c04d89aSDmitry Baryshkov    deprecated: true
602f14bc38SDmitry Baryshkov
612f14bc38SDmitry Baryshkov  core-vcc-supply:
622f14bc38SDmitry Baryshkov    description: phandle to VCC supply regulator
632f14bc38SDmitry Baryshkov
642f14bc38SDmitry Baryshkov  hpd-gpios:
652f14bc38SDmitry Baryshkov    maxItems: 1
662f14bc38SDmitry Baryshkov    description: hpd pin
672f14bc38SDmitry Baryshkov
682f14bc38SDmitry Baryshkov  qcom,hdmi-tx-mux-en-gpios:
692f14bc38SDmitry Baryshkov    maxItems: 1
70e3c5ce88SDmitry Baryshkov    deprecated: true
712f14bc38SDmitry Baryshkov    description: HDMI mux enable pin
722f14bc38SDmitry Baryshkov
732f14bc38SDmitry Baryshkov  qcom,hdmi-tx-mux-sel-gpios:
742f14bc38SDmitry Baryshkov    maxItems: 1
75e3c5ce88SDmitry Baryshkov    deprecated: true
762f14bc38SDmitry Baryshkov    description: HDMI mux select pin
772f14bc38SDmitry Baryshkov
782f14bc38SDmitry Baryshkov  qcom,hdmi-tx-mux-lpm-gpios:
792f14bc38SDmitry Baryshkov    maxItems: 1
80e3c5ce88SDmitry Baryshkov    deprecated: true
812f14bc38SDmitry Baryshkov    description: HDMI mux lpm pin
822f14bc38SDmitry Baryshkov
832f14bc38SDmitry Baryshkov  '#sound-dai-cells':
842f14bc38SDmitry Baryshkov    const: 1
852f14bc38SDmitry Baryshkov
862f14bc38SDmitry Baryshkov  ports:
872f14bc38SDmitry Baryshkov    type: object
882f14bc38SDmitry Baryshkov    $ref: /schemas/graph.yaml#/properties/ports
892f14bc38SDmitry Baryshkov    properties:
902f14bc38SDmitry Baryshkov      port@0:
912f14bc38SDmitry Baryshkov        $ref: /schemas/graph.yaml#/$defs/port-base
922f14bc38SDmitry Baryshkov        description: |
932f14bc38SDmitry Baryshkov          Input endpoints of the controller.
942f14bc38SDmitry Baryshkov
952f14bc38SDmitry Baryshkov      port@1:
962f14bc38SDmitry Baryshkov        $ref: /schemas/graph.yaml#/$defs/port-base
972f14bc38SDmitry Baryshkov        description: |
982f14bc38SDmitry Baryshkov          Output endpoints of the controller.
992f14bc38SDmitry Baryshkov
1002f14bc38SDmitry Baryshkov    required:
1012f14bc38SDmitry Baryshkov      - port@0
1022f14bc38SDmitry Baryshkov
1032f14bc38SDmitry Baryshkovrequired:
1042f14bc38SDmitry Baryshkov  - compatible
1052f14bc38SDmitry Baryshkov  - clocks
1062f14bc38SDmitry Baryshkov  - clock-names
1072f14bc38SDmitry Baryshkov  - reg
1082f14bc38SDmitry Baryshkov  - reg-names
1092f14bc38SDmitry Baryshkov  - interrupts
1102f14bc38SDmitry Baryshkov  - phys
1112f14bc38SDmitry Baryshkov
1122f14bc38SDmitry BaryshkovallOf:
1132f14bc38SDmitry Baryshkov  - if:
1142f14bc38SDmitry Baryshkov      properties:
1152f14bc38SDmitry Baryshkov        compatible:
1162f14bc38SDmitry Baryshkov          contains:
1172f14bc38SDmitry Baryshkov            enum:
1182f14bc38SDmitry Baryshkov              - qcom,hdmi-tx-8960
1192f14bc38SDmitry Baryshkov              - qcom,hdmi-tx-8660
1202f14bc38SDmitry Baryshkov    then:
1212f14bc38SDmitry Baryshkov      properties:
1222f14bc38SDmitry Baryshkov        clocks:
1232f14bc38SDmitry Baryshkov          minItems: 3
1242f14bc38SDmitry Baryshkov          maxItems: 3
1252f14bc38SDmitry Baryshkov        clock-names:
1262f14bc38SDmitry Baryshkov          items:
1272f14bc38SDmitry Baryshkov            - const: core
1282f14bc38SDmitry Baryshkov            - const: master_iface
1292f14bc38SDmitry Baryshkov            - const: slave_iface
1302f14bc38SDmitry Baryshkov        core-vcc-supplies: false
1312f14bc38SDmitry Baryshkov
1322f14bc38SDmitry Baryshkov  - if:
1332f14bc38SDmitry Baryshkov      properties:
1342f14bc38SDmitry Baryshkov        compatible:
1352f14bc38SDmitry Baryshkov          contains:
1362f14bc38SDmitry Baryshkov            enum:
1372f14bc38SDmitry Baryshkov              - qcom,hdmi-tx-8974
1382f14bc38SDmitry Baryshkov              - qcom,hdmi-tx-8084
1392f14bc38SDmitry Baryshkov              - qcom,hdmi-tx-8994
1402f14bc38SDmitry Baryshkov              - qcom,hdmi-tx-8996
1412f14bc38SDmitry Baryshkov    then:
1422f14bc38SDmitry Baryshkov      properties:
1432f14bc38SDmitry Baryshkov        clocks:
1442f14bc38SDmitry Baryshkov          minItems: 5
1452f14bc38SDmitry Baryshkov        clock-names:
1462f14bc38SDmitry Baryshkov          items:
1472f14bc38SDmitry Baryshkov            - const: mdp_core
1482f14bc38SDmitry Baryshkov            - const: iface
1492f14bc38SDmitry Baryshkov            - const: core
1502f14bc38SDmitry Baryshkov            - const: alt_iface
1512f14bc38SDmitry Baryshkov            - const: extp
1522f14bc38SDmitry Baryshkov        hdmi-mux-supplies: false
1532f14bc38SDmitry Baryshkov
1542f14bc38SDmitry BaryshkovadditionalProperties: false
1552f14bc38SDmitry Baryshkov
1562f14bc38SDmitry Baryshkovexamples:
1572f14bc38SDmitry Baryshkov  - |
1582f14bc38SDmitry Baryshkov    #include <dt-bindings/gpio/gpio.h>
1592f14bc38SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/irq.h>
1602f14bc38SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
1612f14bc38SDmitry Baryshkov    hdmi: hdmi@4a00000 {
1622f14bc38SDmitry Baryshkov      compatible = "qcom,hdmi-tx-8960";
1632f14bc38SDmitry Baryshkov      reg-names = "core_physical";
1642f14bc38SDmitry Baryshkov      reg = <0x04a00000 0x2f0>;
1652f14bc38SDmitry Baryshkov      interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1662f14bc38SDmitry Baryshkov      clock-names = "core",
1672f14bc38SDmitry Baryshkov                    "master_iface",
1682f14bc38SDmitry Baryshkov                    "slave_iface";
1692f14bc38SDmitry Baryshkov      clocks = <&clk 61>,
1702f14bc38SDmitry Baryshkov               <&clk 72>,
1712f14bc38SDmitry Baryshkov               <&clk 98>;
1722f14bc38SDmitry Baryshkov      hpd-gpios = <&msmgpio 72 GPIO_ACTIVE_HIGH>;
1732f14bc38SDmitry Baryshkov      core-vdda-supply = <&pm8921_hdmi_mvs>;
1742f14bc38SDmitry Baryshkov      hdmi-mux-supply = <&ext_3p3v>;
1752f14bc38SDmitry Baryshkov      pinctrl-names = "default", "sleep";
1762f14bc38SDmitry Baryshkov      pinctrl-0 = <&hpd_active  &ddc_active  &cec_active>;
1772f14bc38SDmitry Baryshkov      pinctrl-1 = <&hpd_suspend &ddc_suspend &cec_suspend>;
1782f14bc38SDmitry Baryshkov
1792f14bc38SDmitry Baryshkov      phys = <&hdmi_phy>;
1802f14bc38SDmitry Baryshkov    };
1812f14bc38SDmitry Baryshkov  - |
1822f14bc38SDmitry Baryshkov    #include <dt-bindings/clock/qcom,gcc-msm8996.h>
1832f14bc38SDmitry Baryshkov    #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
1842f14bc38SDmitry Baryshkov    #include <dt-bindings/gpio/gpio.h>
1852f14bc38SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/irq.h>
1862f14bc38SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/arm-gic.h>
1872f14bc38SDmitry Baryshkov    hdmi@9a0000 {
1882f14bc38SDmitry Baryshkov      compatible = "qcom,hdmi-tx-8996";
1892f14bc38SDmitry Baryshkov      reg = <0x009a0000 0x50c>,
1902f14bc38SDmitry Baryshkov            <0x00070000 0x6158>,
1912f14bc38SDmitry Baryshkov            <0x009e0000 0xfff>;
1922f14bc38SDmitry Baryshkov      reg-names = "core_physical",
1932f14bc38SDmitry Baryshkov                  "qfprom_physical",
1942f14bc38SDmitry Baryshkov                  "hdcp_physical";
1952f14bc38SDmitry Baryshkov
1962f14bc38SDmitry Baryshkov      interrupt-parent = <&mdss>;
1972f14bc38SDmitry Baryshkov      interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
1982f14bc38SDmitry Baryshkov
1992f14bc38SDmitry Baryshkov      clocks = <&mmcc MDSS_MDP_CLK>,
2002f14bc38SDmitry Baryshkov               <&mmcc MDSS_AHB_CLK>,
2012f14bc38SDmitry Baryshkov               <&mmcc MDSS_HDMI_CLK>,
2022f14bc38SDmitry Baryshkov               <&mmcc MDSS_HDMI_AHB_CLK>,
2032f14bc38SDmitry Baryshkov               <&mmcc MDSS_EXTPCLK_CLK>;
2042f14bc38SDmitry Baryshkov      clock-names = "mdp_core",
2052f14bc38SDmitry Baryshkov                    "iface",
2062f14bc38SDmitry Baryshkov                    "core",
2072f14bc38SDmitry Baryshkov                    "alt_iface",
2082f14bc38SDmitry Baryshkov                    "extp";
2092f14bc38SDmitry Baryshkov
2102f14bc38SDmitry Baryshkov      phys = <&hdmi_phy>;
2112f14bc38SDmitry Baryshkov      #sound-dai-cells = <1>;
2122f14bc38SDmitry Baryshkov
2132f14bc38SDmitry Baryshkov      pinctrl-names = "default", "sleep";
2142f14bc38SDmitry Baryshkov      pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
2152f14bc38SDmitry Baryshkov      pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
2162f14bc38SDmitry Baryshkov
2172f14bc38SDmitry Baryshkov      core-vdda-supply = <&vreg_l12a_1p8>;
2182f14bc38SDmitry Baryshkov      core-vcc-supply = <&vreg_s4a_1p8>;
2192f14bc38SDmitry Baryshkov
2202f14bc38SDmitry Baryshkov      ports {
2212f14bc38SDmitry Baryshkov        #address-cells = <1>;
2222f14bc38SDmitry Baryshkov        #size-cells = <0>;
2232f14bc38SDmitry Baryshkov
2242f14bc38SDmitry Baryshkov        port@0 {
2252f14bc38SDmitry Baryshkov          reg = <0>;
2262f14bc38SDmitry Baryshkov          endpoint {
2272f14bc38SDmitry Baryshkov            remote-endpoint = <&mdp5_intf3_out>;
2282f14bc38SDmitry Baryshkov          };
2292f14bc38SDmitry Baryshkov        };
2302f14bc38SDmitry Baryshkov      };
2312f14bc38SDmitry Baryshkov    };
2322f14bc38SDmitry Baryshkov...
233