diff --git a/arch/arm64/boot/dts/rockchip/px30-ad-d6-anx6345.dts b/arch/arm64/boot/dts/rockchip/px30-ad-d6-anx6345.dts index 7871e23c442d..0e7a2dcd8c0a 100644 --- a/arch/arm64/boot/dts/rockchip/px30-ad-d6-anx6345.dts +++ b/arch/arm64/boot/dts/rockchip/px30-ad-d6-anx6345.dts @@ -555,7 +555,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-ad-r35-mb.dtsi b/arch/arm64/boot/dts/rockchip/px30-ad-r35-mb.dtsi index 181a5f4b0c74..5cdc2d5933b8 100644 --- a/arch/arm64/boot/dts/rockchip/px30-ad-r35-mb.dtsi +++ b/arch/arm64/boot/dts/rockchip/px30-ad-r35-mb.dtsi @@ -492,7 +492,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-lvds-v10.dts b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-lvds-v10.dts index 2de4ed5e46f3..a1eb8122cf5d 100644 --- a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-lvds-v10.dts +++ b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-lvds-v10.dts @@ -645,7 +645,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-linux.dts b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-linux.dts index 14a5e7859a1e..d720b8d80e74 100644 --- a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-linux.dts +++ b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-linux.dts @@ -841,7 +841,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-linux.dts b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-linux.dts index ae4d4b27a5d4..e16df5a26fdc 100644 --- a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-linux.dts +++ b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-linux.dts @@ -503,7 +503,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-no-gpu-linux.dts b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-no-gpu-linux.dts index 2e3819e2ae87..1040bc7c2fdc 100644 --- a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-no-gpu-linux.dts +++ b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10-robot-no-gpu-linux.dts @@ -503,7 +503,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10.dtsi b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10.dtsi index f018ce464390..6c30ce30038a 100644 --- a/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/px30-evb-ddr3-v10.dtsi @@ -876,6 +876,26 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-evb-ddr4-v10.dts b/arch/arm64/boot/dts/rockchip/px30-evb-ddr4-v10.dts index a5c8a3e53ea1..792057d68b00 100644 --- a/arch/arm64/boot/dts/rockchip/px30-evb-ddr4-v10.dts +++ b/arch/arm64/boot/dts/rockchip/px30-evb-ddr4-v10.dts @@ -786,7 +786,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30-z7-a0-rk618-dsi.dts b/arch/arm64/boot/dts/rockchip/px30-z7-a0-rk618-dsi.dts index dbba4967ed8f..16d91cb914ba 100644 --- a/arch/arm64/boot/dts/rockchip/px30-z7-a0-rk618-dsi.dts +++ b/arch/arm64/boot/dts/rockchip/px30-z7-a0-rk618-dsi.dts @@ -742,7 +742,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/rockchip/px30.dtsi index b917d0a2ba3b..27e627001fda 100644 --- a/arch/arm64/boot/dts/rockchip/px30.dtsi +++ b/arch/arm64/boot/dts/rockchip/px30.dtsi @@ -1391,36 +1391,64 @@ }; }; - hevc: hevc_service@ff440000 { - compatible = "rockchip,hevc_sub"; - iommu_enabled = <1>; + mpp_srv: mpp-srv { + compatible = "rockchip,mpp-service"; + rockchip,taskqueue-count = <1>; + rkvdec,grf = <&grf 0x410 0x80008000>; + vdpu2,grf = <&grf 0x410 0x80000000>; + vepu2,grf = <&grf 0x410 0x80000000>; + status = "disabled"; + }; + + vdpu: vdpu@ff442400 { + compatible = "rockchip,vpu-decoder-v2"; + reg = <0x0 0xff442400 0x0 0x400>; + interrupts = ; + interrupt-names = "irq_dec"; + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; + clock-names = "aclk_vcodec", "hclk_vcodec"; + resets = <&cru SRST_VPU_A>, <&cru SRST_VPU_H>; + reset-names = "video_a", "video_h"; + iommus = <&vpu_mmu>; + power-domains = <&power PX30_PD_VPU>; + rockchip,srv = <&mpp_srv>; + rockchip,taskqueue-node = <0>; + status = "disabled"; + }; + + vpu_mmu: iommu@ff442800 { + compatible = "rockchip,iommu"; + reg = <0x0 0xff442800 0x0 0x100>; + interrupts = ; + interrupt-names = "vpu_mmu"; + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; + clock-names = "aclk", "iface"; + power-domains = <&power PX30_PD_VPU>; + #iommu-cells = <0>; + status = "disabled"; + }; + + vepu: vepu@ff442000 { + compatible = "rockchip,vpu-encoder-v2"; + reg = <0x0 0xff442000 0x0 0x400>; + interrupts = ; + interrupt-names = "irq_enc"; + clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; + clock-names = "aclk_vcodec", "hclk_vcodec"; + resets = <&cru SRST_VPU_A>, <&cru SRST_VPU_H>; + reset-names = "video_a", "video_h"; + iommus = <&vpu_mmu>; + power-domains = <&power PX30_PD_VPU>; + rockchip,srv = <&mpp_srv>; + rockchip,taskqueue-node = <0>; + status = "disabled"; + }; + + hevc: hevc@ff440000 { + compatible = "rockchip,hevc-decoder"; reg = <0x0 0xff440000 0x0 0x400>; interrupts = ; interrupt-names = "irq_dec"; - dev_mode = <1>; - iommus = <&hevc_mmu>; - name = "hevc_service"; - allocator = <1>; - }; - - vpu: vpu_service@ff442000 { - compatible = "rockchip,vpu_sub"; - iommu_enabled = <1>; - reg = <0x0 0xff442000 0x0 0x800>; - interrupts = , - ; - interrupt-names = "irq_enc", "irq_dec"; - dev_mode = <0>; - iommus = <&vpu_mmu>; - name = "vpu_service"; - allocator = <1>; - }; - - vpu_combo: vpu_combo { - compatible = "rockchip,vpu_combo"; - subcnt = <2>; - rockchip,grf = <&grf>; - rockchip,sub = <&vpu>, <&hevc>; clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>, <&cru SCLK_CORE_VPU>; clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core"; resets = <&cru SRST_VPU_A>, <&cru SRST_VPU_H>, @@ -1428,10 +1456,10 @@ <&cru SRST_VPU_CORE>; reset-names = "video_a", "video_h", "niu_a", "niu_h", "video_core"; + iommus = <&hevc_mmu>; + rockchip,srv = <&mpp_srv>; + rockchip,taskqueue-node = <0>; power-domains = <&power PX30_PD_VPU>; - mode_bit = <15>; - mode_ctrl = <0x410>; - name = "vpu_combo"; status = "disabled"; }; @@ -1444,17 +1472,7 @@ clock-names = "aclk", "iface"; power-domains = <&power PX30_PD_VPU>; #iommu-cells = <0>; - }; - - vpu_mmu: iommu@ff442800 { - compatible = "rockchip,iommu"; - reg = <0x0 0xff442800 0x0 0x100>; - interrupts = ; - interrupt-names = "vpu_mmu"; - clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>; - clock-names = "aclk", "iface"; - power-domains = <&power PX30_PD_VPU>; - #iommu-cells = <0>; + status = "disabled"; }; dsi: dsi@ff450000 { diff --git a/arch/arm64/boot/dts/rockchip/rk3326-863-lp3-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3326-863-lp3-v10.dtsi index 62c369676240..66a0da9c7243 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-863-lp3-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3326-863-lp3-v10.dtsi @@ -782,6 +782,26 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-86v-v10.dts b/arch/arm64/boot/dts/rockchip/rk3326-86v-v10.dts index 24eeb20dd50e..29cffb2ec03c 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-86v-v10.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-86v-v10.dts @@ -792,7 +792,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v10.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v10.dts index 31d359fcc4a8..8d06d58fe1ef 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v10.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v10.dts @@ -1181,7 +1181,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11-i2s-dmic.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11-i2s-dmic.dts index 6c306c3aa4bd..021361376581 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11-i2s-dmic.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11-i2s-dmic.dts @@ -1204,7 +1204,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11.dts index c70563be39ec..35c92453bdc4 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-ai-va-v11.dts @@ -1190,7 +1190,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-linux.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-linux.dts index 80a1982c675c..a26e16d20d57 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-linux.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-linux.dts @@ -916,7 +916,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-linux.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-linux.dts index 9a8de7bf01c0..b4bad88bfa7f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-linux.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-linux.dts @@ -611,7 +611,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-no-gpu-linux.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-no-gpu-linux.dts index 3fd222649be0..29a01584bcb0 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-no-gpu-linux.dts +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-robot-no-gpu-linux.dts @@ -606,7 +606,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10.dtsi index d5252583f7a7..ea298337833e 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10.dtsi @@ -836,7 +836,26 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { status = "okay"; }; +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3326-w7.dtsi b/arch/arm64/boot/dts/rockchip/rk3326-w7.dtsi index e63532e6ddbf..063b3cec887e 100644 --- a/arch/arm64/boot/dts/rockchip/rk3326-w7.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3326-w7.dtsi @@ -563,7 +563,27 @@ status = "okay"; }; -&vpu_combo { +&mpp_srv { + status = "okay"; +}; + +&vdpu { + status = "okay"; +}; + +&vepu { + status = "okay"; +}; + +&vpu_mmu { + status = "okay"; +}; + +&hevc { + status = "okay"; +}; + +&hevc_mmu { status = "okay"; };