1 From 0327238991ba2d1de25e1116b1c064f433e45b8d Mon Sep 17 00:00:00 2001
2 From: Shreeya Patel <shreeya.patel@collabora.com>
3 Date: Fri, 7 Mar 2025 12:18:56 +0300
4 Subject: arm64: dts: rockchip: Add device tree support for HDMI RX Controller
6 Add device tree support for Synopsys DesignWare HDMI RX
9 Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
10 Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
11 Co-developed-by: Dingxian Wen <shawn.wen@rock-chips.com>
12 Signed-off-by: Dingxian Wen <shawn.wen@rock-chips.com>
13 Signed-off-by: Shreeya Patel <shreeya.patel@collabora.com>
14 Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
15 Link: https://lore.kernel.org/r/20250307091857.646581-2-dmitry.osipenko@collabora.com
16 Signed-off-by: Heiko Stuebner <heiko@sntech.de>
18 --- a/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
19 +++ b/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
25 + #address-cells = <2>;
30 + * The 4k HDMI capture controller works only with 32bit
31 + * phys addresses and doesn't support IOMMU. HDMI RX CMA
32 + * must be reserved below 4GB.
33 + * The size of 160MB was determined as follows:
34 + * (3840 * 2160 pixels) * (4 bytes/pixel) * (2 frames/buffer) / 10^6 = 66MB
35 + * To ensure sufficient support for practical use-cases,
36 + * we doubled the 66MB value.
38 + hdmi_receiver_cma: hdmi-receiver-cma {
39 + compatible = "shared-dma-pool";
40 + alloc-ranges = <0x0 0x0 0x0 0xffffffff>;
41 + size = <0x0 (160 * 0x100000)>; /* 160MiB */
42 + alignment = <0x0 0x40000>; /* 64K */
44 + status = "disabled";
48 usb_host1_xhci: usb@fc400000 {
49 compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
50 reg = <0x0 0xfc400000 0x0 0x400000>;
55 + hdmi_receiver: hdmi_receiver@fdee0000 {
56 + compatible = "rockchip,rk3588-hdmirx-ctrler", "snps,dw-hdmi-rx";
57 + reg = <0x0 0xfdee0000 0x0 0x6000>;
58 + interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH 0>,
59 + <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH 0>,
60 + <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH 0>;
61 + interrupt-names = "cec", "hdmi", "dma";
62 + clocks = <&cru ACLK_HDMIRX>,
63 + <&cru CLK_HDMIRX_AUD>,
66 + <&cru CLK_HDMIRX_REF>,
67 + <&cru PCLK_S_HDMIRX>,
69 + clock-names = "aclk",
76 + memory-region = <&hdmi_receiver_cma>;
77 + power-domains = <&power RK3588_PD_VO1>;
78 + resets = <&cru SRST_A_HDMIRX>, <&cru SRST_P_HDMIRX>,
79 + <&cru SRST_HDMIRX_REF>, <&cru SRST_A_HDMIRX_BIU>;
80 + reset-names = "axi", "apb", "ref", "biu";
81 + rockchip,grf = <&sys_grf>;
82 + rockchip,vo1-grf = <&vo1_grf>;
83 + status = "disabled";
86 pcie3x4: pcie@fe150000 {
87 compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";