xref: /freebsd/sys/contrib/device-tree/Bindings/media/snps,dw-hdmi-rx.yaml (revision 8ccc0d235c226d84112561d453c49904398d085c)
1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8ccc0d23SEmmanuel Vadot# Device Tree bindings for Synopsys DesignWare HDMI RX Controller
3*8ccc0d23SEmmanuel Vadot
4*8ccc0d23SEmmanuel Vadot---
5*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/media/snps,dw-hdmi-rx.yaml#
6*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7*8ccc0d23SEmmanuel Vadot
8*8ccc0d23SEmmanuel Vadottitle: Synopsys DesignWare HDMI RX Controller
9*8ccc0d23SEmmanuel Vadot
10*8ccc0d23SEmmanuel Vadotmaintainers:
11*8ccc0d23SEmmanuel Vadot  - Shreeya Patel <shreeya.patel@collabora.com>
12*8ccc0d23SEmmanuel Vadot
13*8ccc0d23SEmmanuel Vadotdescription:
14*8ccc0d23SEmmanuel Vadot  Synopsys DesignWare HDMI Input Controller preset on RK3588 SoCs
15*8ccc0d23SEmmanuel Vadot  allowing devices to receive and decode high-resolution video streams
16*8ccc0d23SEmmanuel Vadot  from external sources like media players, cameras, laptops, etc.
17*8ccc0d23SEmmanuel Vadot
18*8ccc0d23SEmmanuel Vadotproperties:
19*8ccc0d23SEmmanuel Vadot  compatible:
20*8ccc0d23SEmmanuel Vadot    items:
21*8ccc0d23SEmmanuel Vadot      - const: rockchip,rk3588-hdmirx-ctrler
22*8ccc0d23SEmmanuel Vadot      - const: snps,dw-hdmi-rx
23*8ccc0d23SEmmanuel Vadot
24*8ccc0d23SEmmanuel Vadot  reg:
25*8ccc0d23SEmmanuel Vadot    maxItems: 1
26*8ccc0d23SEmmanuel Vadot
27*8ccc0d23SEmmanuel Vadot  interrupts:
28*8ccc0d23SEmmanuel Vadot    maxItems: 3
29*8ccc0d23SEmmanuel Vadot
30*8ccc0d23SEmmanuel Vadot  interrupt-names:
31*8ccc0d23SEmmanuel Vadot    items:
32*8ccc0d23SEmmanuel Vadot      - const: cec
33*8ccc0d23SEmmanuel Vadot      - const: hdmi
34*8ccc0d23SEmmanuel Vadot      - const: dma
35*8ccc0d23SEmmanuel Vadot
36*8ccc0d23SEmmanuel Vadot  clocks:
37*8ccc0d23SEmmanuel Vadot    maxItems: 7
38*8ccc0d23SEmmanuel Vadot
39*8ccc0d23SEmmanuel Vadot  clock-names:
40*8ccc0d23SEmmanuel Vadot    items:
41*8ccc0d23SEmmanuel Vadot      - const: aclk
42*8ccc0d23SEmmanuel Vadot      - const: audio
43*8ccc0d23SEmmanuel Vadot      - const: cr_para
44*8ccc0d23SEmmanuel Vadot      - const: pclk
45*8ccc0d23SEmmanuel Vadot      - const: ref
46*8ccc0d23SEmmanuel Vadot      - const: hclk_s_hdmirx
47*8ccc0d23SEmmanuel Vadot      - const: hclk_vo1
48*8ccc0d23SEmmanuel Vadot
49*8ccc0d23SEmmanuel Vadot  power-domains:
50*8ccc0d23SEmmanuel Vadot    maxItems: 1
51*8ccc0d23SEmmanuel Vadot
52*8ccc0d23SEmmanuel Vadot  resets:
53*8ccc0d23SEmmanuel Vadot    maxItems: 4
54*8ccc0d23SEmmanuel Vadot
55*8ccc0d23SEmmanuel Vadot  reset-names:
56*8ccc0d23SEmmanuel Vadot    items:
57*8ccc0d23SEmmanuel Vadot      - const: axi
58*8ccc0d23SEmmanuel Vadot      - const: apb
59*8ccc0d23SEmmanuel Vadot      - const: ref
60*8ccc0d23SEmmanuel Vadot      - const: biu
61*8ccc0d23SEmmanuel Vadot
62*8ccc0d23SEmmanuel Vadot  memory-region:
63*8ccc0d23SEmmanuel Vadot    maxItems: 1
64*8ccc0d23SEmmanuel Vadot
65*8ccc0d23SEmmanuel Vadot  hpd-gpios:
66*8ccc0d23SEmmanuel Vadot    description: GPIO specifier for HPD.
67*8ccc0d23SEmmanuel Vadot    maxItems: 1
68*8ccc0d23SEmmanuel Vadot
69*8ccc0d23SEmmanuel Vadot  rockchip,grf:
70*8ccc0d23SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
71*8ccc0d23SEmmanuel Vadot    description:
72*8ccc0d23SEmmanuel Vadot      The phandle of the syscon node for the general register file
73*8ccc0d23SEmmanuel Vadot      containing HDMIRX PHY status bits.
74*8ccc0d23SEmmanuel Vadot
75*8ccc0d23SEmmanuel Vadot  rockchip,vo1-grf:
76*8ccc0d23SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
77*8ccc0d23SEmmanuel Vadot    description:
78*8ccc0d23SEmmanuel Vadot      The phandle of the syscon node for the Video Output GRF register
79*8ccc0d23SEmmanuel Vadot      to enable EDID transfer through SDAIN and SCLIN.
80*8ccc0d23SEmmanuel Vadot
81*8ccc0d23SEmmanuel Vadotrequired:
82*8ccc0d23SEmmanuel Vadot  - compatible
83*8ccc0d23SEmmanuel Vadot  - reg
84*8ccc0d23SEmmanuel Vadot  - interrupts
85*8ccc0d23SEmmanuel Vadot  - interrupt-names
86*8ccc0d23SEmmanuel Vadot  - clocks
87*8ccc0d23SEmmanuel Vadot  - clock-names
88*8ccc0d23SEmmanuel Vadot  - power-domains
89*8ccc0d23SEmmanuel Vadot  - resets
90*8ccc0d23SEmmanuel Vadot  - pinctrl-0
91*8ccc0d23SEmmanuel Vadot  - hpd-gpios
92*8ccc0d23SEmmanuel Vadot
93*8ccc0d23SEmmanuel VadotadditionalProperties: false
94*8ccc0d23SEmmanuel Vadot
95*8ccc0d23SEmmanuel Vadotexamples:
96*8ccc0d23SEmmanuel Vadot  - |
97*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/clock/rockchip,rk3588-cru.h>
98*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
99*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
100*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
101*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/power/rk3588-power.h>
102*8ccc0d23SEmmanuel Vadot    #include <dt-bindings/reset/rockchip,rk3588-cru.h>
103*8ccc0d23SEmmanuel Vadot    hdmi_receiver: hdmi-receiver@fdee0000 {
104*8ccc0d23SEmmanuel Vadot      compatible = "rockchip,rk3588-hdmirx-ctrler", "snps,dw-hdmi-rx";
105*8ccc0d23SEmmanuel Vadot      reg = <0xfdee0000 0x6000>;
106*8ccc0d23SEmmanuel Vadot      interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH 0>,
107*8ccc0d23SEmmanuel Vadot                   <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH 0>,
108*8ccc0d23SEmmanuel Vadot                   <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH 0>;
109*8ccc0d23SEmmanuel Vadot      interrupt-names = "cec", "hdmi", "dma";
110*8ccc0d23SEmmanuel Vadot      clocks = <&cru ACLK_HDMIRX>,
111*8ccc0d23SEmmanuel Vadot               <&cru CLK_HDMIRX_AUD>,
112*8ccc0d23SEmmanuel Vadot               <&cru CLK_CR_PARA>,
113*8ccc0d23SEmmanuel Vadot               <&cru PCLK_HDMIRX>,
114*8ccc0d23SEmmanuel Vadot               <&cru CLK_HDMIRX_REF>,
115*8ccc0d23SEmmanuel Vadot               <&cru PCLK_S_HDMIRX>,
116*8ccc0d23SEmmanuel Vadot               <&cru HCLK_VO1>;
117*8ccc0d23SEmmanuel Vadot      clock-names = "aclk",
118*8ccc0d23SEmmanuel Vadot                    "audio",
119*8ccc0d23SEmmanuel Vadot                    "cr_para",
120*8ccc0d23SEmmanuel Vadot                    "pclk",
121*8ccc0d23SEmmanuel Vadot                    "ref",
122*8ccc0d23SEmmanuel Vadot                    "hclk_s_hdmirx",
123*8ccc0d23SEmmanuel Vadot                    "hclk_vo1";
124*8ccc0d23SEmmanuel Vadot      power-domains = <&power RK3588_PD_VO1>;
125*8ccc0d23SEmmanuel Vadot      resets = <&cru SRST_A_HDMIRX>, <&cru SRST_P_HDMIRX>,
126*8ccc0d23SEmmanuel Vadot               <&cru SRST_HDMIRX_REF>, <&cru SRST_A_HDMIRX_BIU>;
127*8ccc0d23SEmmanuel Vadot      reset-names = "axi", "apb", "ref", "biu";
128*8ccc0d23SEmmanuel Vadot      memory-region = <&hdmi_receiver_cma>;
129*8ccc0d23SEmmanuel Vadot      pinctrl-0 = <&hdmim1_rx_cec &hdmim1_rx_hpdin &hdmim1_rx_scl &hdmim1_rx_sda &hdmirx_5v_detection>;
130*8ccc0d23SEmmanuel Vadot      pinctrl-names = "default";
131*8ccc0d23SEmmanuel Vadot      hpd-gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
132*8ccc0d23SEmmanuel Vadot    };
133