diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi index fc2d6be..624416f 100644 --- a/arch/arm/boot/dts/rk3288.dtsi +++ b/arch/arm/boot/dts/rk3288.dtsi @@ -1143,6 +1143,92 @@ }; }; + vpu: video-codec@ff9a0000 { + compatible = "rockchip,rk3288-vpu"; + reg = <0xff9a0000 0x800>; + interrupts = , + ; + interrupt-names = "vepu", "vdpu"; + clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; + clock-names = "aclk", "hclk"; + power-domains = <&power RK3288_PD_VIDEO>; + iommus = <&vpu_mmu>; + assigned-clocks = <&cru ACLK_VCODEC>; + assigned-clock-rates = <400000000>; + status = "disabled"; + }; + + vpu_service: vpu-service@ff9a0000 { + compatible = "rockchip,vpu_service"; + reg = <0xff9a0000 0x800>; + interrupts = , + ; + interrupt-names = "irq_enc", "irq_dec"; + clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>; + clock-names = "aclk_vcodec", "hclk_vcodec"; + power-domains = <&power RK3288_PD_VIDEO>; + rockchip,grf = <&grf>; + resets = <&cru SRST_VCODEC_AXI>, <&cru SRST_VCODEC_AHB>; + reset-names = "video_a", "video_h"; + iommus = <&vpu_mmu>; + iommu_enabled = <1>; + dev_mode = <0>; + status = "disabled"; + /* 0 means ion, 1 means drm */ + allocator = <1>; + }; + + vpu_mmu: iommu@ff9a0800 { + compatible = "rockchip,iommu"; + reg = <0xff9a0800 0x100>; + interrupts = ; + interrupt-names = "vpu_mmu"; + power-domains = <&power RK3288_PD_VIDEO>; + #iommu-cells = <0>; + }; + + hevc_service: hevc-service@ff9c0000 { + compatible = "rockchip,hevc_service"; + reg = <0xff9c0000 0x400>; + interrupts = ; + interrupt-names = "irq_dec"; + clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>, + <&cru SCLK_HEVC_CORE>, + <&cru SCLK_HEVC_CABAC>; + clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core", + "clk_cabac"; + /* + * The 4K hevc would also work well with 500/125/300/300, + * no more err irq and reset request. + */ + assigned-clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>, + <&cru SCLK_HEVC_CORE>, + <&cru SCLK_HEVC_CABAC>; + assigned-clock-rates = <400000000>, <100000000>, + <300000000>, <300000000>; + + resets = <&cru SRST_HEVC>; + reset-names = "video"; + power-domains = <&power RK3288_PD_HEVC>; + rockchip,grf = <&grf>; + dev_mode = <1>; + iommus = <&hevc_mmu>; + iommu_enabled = <1>; + status = "disabled"; + /* 0 means ion, 1 means drm */ + allocator = <1>; + }; + + hevc_mmu: iommu@ff9c0440 { + compatible = "rockchip,iommu"; + reg = <0xff9c0440 0x40>, <0xff9c0480 0x40>; + interrupts = ; + interrupt-names = "hevc_mmu"; + power-domains = <&power RK3288_PD_HEVC>; + #iommu-cells = <0>; + }; + + gpu: gpu@ffa30000 { compatible = "rockchip,rk3288-mali", "arm,mali-t760"; reg = <0xffa30000 0x10000>;