aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/display/mediatek/mediatek,mt8195-hdmi.yaml
blob: 1b382f99d3ced4d2db99d6852b9877425e63c229 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/mediatek/mediatek,mt8195-hdmi.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek MT8195 series HDMI-TX Encoder

maintainers:
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
  - CK Hu <ck.hu@mediatek.com>

description:
  The MediaTek HDMI-TX v2 encoder can generate HDMI format data based on
  the HDMI Specification 2.0b.

properties:
  compatible:
    enum:
      - mediatek,mt8188-hdmi-tx
      - mediatek,mt8195-hdmi-tx

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    items:
      - description: HDMI Peripheral Bus (APB) clock
      - description: HDCP and HDMI_TOP clock
      - description: HDCP, HDMI_TOP and HDMI Audio reference clock
      - description: VPP HDMI Split clock

  clock-names:
    items:
      - const: bus
      - const: hdcp
      - const: hdcp24m
      - const: hdmi-split

  i2c:
    type: object
    $ref: /schemas/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml
    unevaluatedProperties: false
    description: HDMI DDC I2C controller

  phys:
    maxItems: 1
    description: PHY providing clocking TMDS and pixel to controller

  phy-names:
    items:
      - const: hdmi

  power-domains:
    maxItems: 1

  '#sound-dai-cells':
    const: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Input port, usually connected to the output port of a DPI

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description:
          Output port that must be connected either to the input port of
          a HDMI connector node containing a ddc-i2c-bus, or to the input
          port of an attached bridge chip, such as a SlimPort transmitter.

    required:
      - port@0
      - port@1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - power-domains
  - phys
  - phy-names
  - ports

allOf:
  - $ref: /schemas/sound/dai-common.yaml#

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/mt8195-clk.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/power/mt8195-power.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        hdmi@1c300000 {
            compatible = "mediatek,mt8195-hdmi-tx";
            reg = <0 0x1c300000 0 0x1000>;
            clocks = <&topckgen CLK_TOP_HDMI_APB>,
                     <&topckgen CLK_TOP_HDCP>,
                     <&topckgen CLK_TOP_HDCP_24M>,
                     <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
            clock-names = "bus", "hdcp", "hdcp24m", "hdmi-split";
            interrupts = <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH 0>;
            phys = <&hdmi_phy>;
            phy-names = "hdmi";
            power-domains = <&spm MT8195_POWER_DOMAIN_HDMI_TX>;
            pinctrl-names = "default";
            pinctrl-0 = <&hdmi_pins>;
            #sound-dai-cells = <1>;

            hdmitx_ddc: i2c {
                compatible = "mediatek,mt8195-hdmi-ddc";
                clocks = <&clk26m>;
            };

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;

                    hdmi_in: endpoint {
                        remote-endpoint = <&dpi1_out>;
                    };
                };

                port@1 {
                    reg = <1>;

                    hdmi_out: endpoint {
                        remote-endpoint = <&hdmi_connector_in>;
                    };
                };
            };
        };
    };