xref: /freebsd/sys/contrib/device-tree/Bindings/display/mediatek/mediatek,mt8195-hdmi.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1*ae5de77eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*ae5de77eSEmmanuel Vadot%YAML 1.2
3*ae5de77eSEmmanuel Vadot---
4*ae5de77eSEmmanuel Vadot$id: http://devicetree.org/schemas/display/mediatek/mediatek,mt8195-hdmi.yaml#
5*ae5de77eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*ae5de77eSEmmanuel Vadot
7*ae5de77eSEmmanuel Vadottitle: MediaTek MT8195 series HDMI-TX Encoder
8*ae5de77eSEmmanuel Vadot
9*ae5de77eSEmmanuel Vadotmaintainers:
10*ae5de77eSEmmanuel Vadot  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
11*ae5de77eSEmmanuel Vadot  - CK Hu <ck.hu@mediatek.com>
12*ae5de77eSEmmanuel Vadot
13*ae5de77eSEmmanuel Vadotdescription:
14*ae5de77eSEmmanuel Vadot  The MediaTek HDMI-TX v2 encoder can generate HDMI format data based on
15*ae5de77eSEmmanuel Vadot  the HDMI Specification 2.0b.
16*ae5de77eSEmmanuel Vadot
17*ae5de77eSEmmanuel Vadotproperties:
18*ae5de77eSEmmanuel Vadot  compatible:
19*ae5de77eSEmmanuel Vadot    enum:
20*ae5de77eSEmmanuel Vadot      - mediatek,mt8188-hdmi-tx
21*ae5de77eSEmmanuel Vadot      - mediatek,mt8195-hdmi-tx
22*ae5de77eSEmmanuel Vadot
23*ae5de77eSEmmanuel Vadot  reg:
24*ae5de77eSEmmanuel Vadot    maxItems: 1
25*ae5de77eSEmmanuel Vadot
26*ae5de77eSEmmanuel Vadot  interrupts:
27*ae5de77eSEmmanuel Vadot    maxItems: 1
28*ae5de77eSEmmanuel Vadot
29*ae5de77eSEmmanuel Vadot  clocks:
30*ae5de77eSEmmanuel Vadot    items:
31*ae5de77eSEmmanuel Vadot      - description: HDMI Peripheral Bus (APB) clock
32*ae5de77eSEmmanuel Vadot      - description: HDCP and HDMI_TOP clock
33*ae5de77eSEmmanuel Vadot      - description: HDCP, HDMI_TOP and HDMI Audio reference clock
34*ae5de77eSEmmanuel Vadot      - description: VPP HDMI Split clock
35*ae5de77eSEmmanuel Vadot
36*ae5de77eSEmmanuel Vadot  clock-names:
37*ae5de77eSEmmanuel Vadot    items:
38*ae5de77eSEmmanuel Vadot      - const: bus
39*ae5de77eSEmmanuel Vadot      - const: hdcp
40*ae5de77eSEmmanuel Vadot      - const: hdcp24m
41*ae5de77eSEmmanuel Vadot      - const: hdmi-split
42*ae5de77eSEmmanuel Vadot
43*ae5de77eSEmmanuel Vadot  i2c:
44*ae5de77eSEmmanuel Vadot    type: object
45*ae5de77eSEmmanuel Vadot    $ref: /schemas/display/mediatek/mediatek,mt8195-hdmi-ddc.yaml
46*ae5de77eSEmmanuel Vadot    unevaluatedProperties: false
47*ae5de77eSEmmanuel Vadot    description: HDMI DDC I2C controller
48*ae5de77eSEmmanuel Vadot
49*ae5de77eSEmmanuel Vadot  phys:
50*ae5de77eSEmmanuel Vadot    maxItems: 1
51*ae5de77eSEmmanuel Vadot    description: PHY providing clocking TMDS and pixel to controller
52*ae5de77eSEmmanuel Vadot
53*ae5de77eSEmmanuel Vadot  phy-names:
54*ae5de77eSEmmanuel Vadot    items:
55*ae5de77eSEmmanuel Vadot      - const: hdmi
56*ae5de77eSEmmanuel Vadot
57*ae5de77eSEmmanuel Vadot  power-domains:
58*ae5de77eSEmmanuel Vadot    maxItems: 1
59*ae5de77eSEmmanuel Vadot
60*ae5de77eSEmmanuel Vadot  '#sound-dai-cells':
61*ae5de77eSEmmanuel Vadot    const: 1
62*ae5de77eSEmmanuel Vadot
63*ae5de77eSEmmanuel Vadot  ports:
64*ae5de77eSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
65*ae5de77eSEmmanuel Vadot
66*ae5de77eSEmmanuel Vadot    properties:
67*ae5de77eSEmmanuel Vadot      port@0:
68*ae5de77eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
69*ae5de77eSEmmanuel Vadot        description:
70*ae5de77eSEmmanuel Vadot          Input port, usually connected to the output port of a DPI
71*ae5de77eSEmmanuel Vadot
72*ae5de77eSEmmanuel Vadot      port@1:
73*ae5de77eSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
74*ae5de77eSEmmanuel Vadot        description:
75*ae5de77eSEmmanuel Vadot          Output port that must be connected either to the input port of
76*ae5de77eSEmmanuel Vadot          a HDMI connector node containing a ddc-i2c-bus, or to the input
77*ae5de77eSEmmanuel Vadot          port of an attached bridge chip, such as a SlimPort transmitter.
78*ae5de77eSEmmanuel Vadot
79*ae5de77eSEmmanuel Vadot    required:
80*ae5de77eSEmmanuel Vadot      - port@0
81*ae5de77eSEmmanuel Vadot      - port@1
82*ae5de77eSEmmanuel Vadot
83*ae5de77eSEmmanuel Vadotrequired:
84*ae5de77eSEmmanuel Vadot  - compatible
85*ae5de77eSEmmanuel Vadot  - reg
86*ae5de77eSEmmanuel Vadot  - interrupts
87*ae5de77eSEmmanuel Vadot  - clocks
88*ae5de77eSEmmanuel Vadot  - clock-names
89*ae5de77eSEmmanuel Vadot  - power-domains
90*ae5de77eSEmmanuel Vadot  - phys
91*ae5de77eSEmmanuel Vadot  - phy-names
92*ae5de77eSEmmanuel Vadot  - ports
93*ae5de77eSEmmanuel Vadot
94*ae5de77eSEmmanuel VadotallOf:
95*ae5de77eSEmmanuel Vadot  - $ref: /schemas/sound/dai-common.yaml#
96*ae5de77eSEmmanuel Vadot
97*ae5de77eSEmmanuel VadotadditionalProperties: false
98*ae5de77eSEmmanuel Vadot
99*ae5de77eSEmmanuel Vadotexamples:
100*ae5de77eSEmmanuel Vadot  - |
101*ae5de77eSEmmanuel Vadot    #include <dt-bindings/clock/mt8195-clk.h>
102*ae5de77eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
103*ae5de77eSEmmanuel Vadot    #include <dt-bindings/power/mt8195-power.h>
104*ae5de77eSEmmanuel Vadot
105*ae5de77eSEmmanuel Vadot    soc {
106*ae5de77eSEmmanuel Vadot        #address-cells = <2>;
107*ae5de77eSEmmanuel Vadot        #size-cells = <2>;
108*ae5de77eSEmmanuel Vadot
109*ae5de77eSEmmanuel Vadot        hdmi@1c300000 {
110*ae5de77eSEmmanuel Vadot            compatible = "mediatek,mt8195-hdmi-tx";
111*ae5de77eSEmmanuel Vadot            reg = <0 0x1c300000 0 0x1000>;
112*ae5de77eSEmmanuel Vadot            clocks = <&topckgen CLK_TOP_HDMI_APB>,
113*ae5de77eSEmmanuel Vadot                     <&topckgen CLK_TOP_HDCP>,
114*ae5de77eSEmmanuel Vadot                     <&topckgen CLK_TOP_HDCP_24M>,
115*ae5de77eSEmmanuel Vadot                     <&vppsys1 CLK_VPP1_VPP_SPLIT_HDMI>;
116*ae5de77eSEmmanuel Vadot            clock-names = "bus", "hdcp", "hdcp24m", "hdmi-split";
117*ae5de77eSEmmanuel Vadot            interrupts = <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH 0>;
118*ae5de77eSEmmanuel Vadot            phys = <&hdmi_phy>;
119*ae5de77eSEmmanuel Vadot            phy-names = "hdmi";
120*ae5de77eSEmmanuel Vadot            power-domains = <&spm MT8195_POWER_DOMAIN_HDMI_TX>;
121*ae5de77eSEmmanuel Vadot            pinctrl-names = "default";
122*ae5de77eSEmmanuel Vadot            pinctrl-0 = <&hdmi_pins>;
123*ae5de77eSEmmanuel Vadot            #sound-dai-cells = <1>;
124*ae5de77eSEmmanuel Vadot
125*ae5de77eSEmmanuel Vadot            hdmitx_ddc: i2c {
126*ae5de77eSEmmanuel Vadot                compatible = "mediatek,mt8195-hdmi-ddc";
127*ae5de77eSEmmanuel Vadot                clocks = <&clk26m>;
128*ae5de77eSEmmanuel Vadot            };
129*ae5de77eSEmmanuel Vadot
130*ae5de77eSEmmanuel Vadot            ports {
131*ae5de77eSEmmanuel Vadot                #address-cells = <1>;
132*ae5de77eSEmmanuel Vadot                #size-cells = <0>;
133*ae5de77eSEmmanuel Vadot
134*ae5de77eSEmmanuel Vadot                port@0 {
135*ae5de77eSEmmanuel Vadot                    reg = <0>;
136*ae5de77eSEmmanuel Vadot
137*ae5de77eSEmmanuel Vadot                    hdmi_in: endpoint {
138*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&dpi1_out>;
139*ae5de77eSEmmanuel Vadot                    };
140*ae5de77eSEmmanuel Vadot                };
141*ae5de77eSEmmanuel Vadot
142*ae5de77eSEmmanuel Vadot                port@1 {
143*ae5de77eSEmmanuel Vadot                    reg = <1>;
144*ae5de77eSEmmanuel Vadot
145*ae5de77eSEmmanuel Vadot                    hdmi_out: endpoint {
146*ae5de77eSEmmanuel Vadot                        remote-endpoint = <&hdmi_connector_in>;
147*ae5de77eSEmmanuel Vadot                    };
148*ae5de77eSEmmanuel Vadot                };
149*ae5de77eSEmmanuel Vadot            };
150*ae5de77eSEmmanuel Vadot        };
151*ae5de77eSEmmanuel Vadot    };
152