@@ -213,6 +213,18 @@
};
};
+&rkvdec {
+ status = "okay";
+};
+
+&rkvdec_mmu {
+ status = "okay";
+};
+
+&rkvdec_srv {
+ status = "okay";
+};
+
&sdio {
bus-width = <4>;
cap-sd-highspeed;
@@ -269,3 +281,23 @@
&usb_host0_ohci {
status = "okay";
};
+
+&vdpu {
+ status = "okay";
+};
+
+&vop {
+ status = "okay";
+};
+
+&vop_mmu {
+ status = "okay";
+};
+
+&vpu_mmu {
+ status = "okay";
+};
+
+&vpu_service{
+ status = "okay";
+};
@@ -256,6 +256,14 @@
};
};
+&h265e {
+ status = "okay";
+};
+
+&h265e_mmu {
+ status = "okay";
+};
+
&i2s1 {
status = "okay";
@@ -300,6 +308,18 @@
};
};
+&rkvdec {
+ status = "okay";
+};
+
+&rkvdec_mmu {
+ status = "okay";
+};
+
+&rkvdec_srv {
+ status = "okay";
+};
+
&sdmmc {
bus-width = <4>;
cap-mmc-highspeed;
@@ -370,6 +390,10 @@
status = "okay";
};
+&vdpu {
+ status = "okay";
+};
+
&vop {
status = "okay";
};
@@ -377,3 +401,11 @@
&vop_mmu {
status = "okay";
};
+
+&vpu_mmu {
+ status = "okay";
+};
+
+&vpu_service{
+ status = "okay";
+};
@@ -573,6 +573,27 @@
resets = <&cru SRST_GPU_A>;
};
+ venc_srv: venc-srv {
+ compatible = "rockchip,mpp-service";
+ status = "disabled";
+ };
+
+ h265e: h265e@ff330000 {
+ compatible = "rockchip,hevc-encoder-v1";
+ reg = <0x0 0xff330000 0 0x200>;
+ interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru ACLK_H265>, <&cru PCLK_H265>,
+ <&cru SCLK_VENC_CORE>, <&cru SCLK_VENC_DSP>,
+ <&cru ACLK_RKVENC>, <&cru ACLK_AXISRAM>;
+ clock-names = "aclk_h265", "pclk_h265", "clk_core",
+ "clk_dsp", "aclk_venc", "aclk_axi2sram";
+ iommus = <&h265e_mmu>;
+ rockchip,srv = <&venc_srv>;
+ syscon = <&grf 0x040c 0x8000800 0x80000>;
+ power-domains = <&power RK3328_PD_HEVC>;
+ status = "disabled";
+ };
+
h265e_mmu: iommu@ff330200 {
compatible = "rockchip,iommu";
reg = <0x0 0xff330200 0 0x100>;
@@ -584,6 +605,25 @@
status = "disabled";
};
+ vepu: vepu@ff340000 {
+ compatible = "rockchip,vpu-encoder-v2";
+ reg = <0x0 0xff340000 0x0 0x400>;
+ interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru ACLK_H264>, <&cru HCLK_H264>,
+ <&cru SCLK_VENC_CORE>;
+ clock-names = "aclk_vcodec", "hclk_vcodec",
+ "clk_core";
+ resets = <&cru SRST_RKVENC_H264_A>,
+ <&cru SRST_RKVENC_H264_H>;
+ reset-names = "video_a", "video_h";
+ iommus = <&vepu_mmu>;
+ rockchip,srv = <&venc_srv>;
+ syscon = <&grf 0x040c 0x8000800 0x80000>;
+ power-domains = <&power RK3328_PD_HEVC>;
+ status = "disabled";
+ };
+
+
vepu_mmu: iommu@ff340800 {
compatible = "rockchip,iommu";
reg = <0x0 0xff340800 0x0 0x40>;
@@ -595,6 +635,42 @@
status = "disabled";
};
+
+ vpu_service: vdpu-srv {
+ compatible = "rockchip,mpp-service";
+ status = "disabled";
+ };
+
+ vdpu: vpu-decoder@ff350000 {
+ compatible = "rockchip,vpu-decoder-v2";
+ reg = <0x0 0xff350400 0x0 0x400>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "irq_dec";
+ resets = <&cru SRST_VCODEC_A>, <&cru SRST_VCODEC_H>;
+ reset-names = "video_a", "video_h";
+ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+ clock-names = "aclk_vcodec", "hclk_vcodec";
+ iommus = <&vpu_mmu>;
+ power-domains = <&power RK3328_PD_VPU>;
+ rockchip,srv = <&vpu_service>;
+ status = "disabled";
+ };
+
+ avsd: avs-decoder@ff351000 {
+ compatible = "rockchip,avs-decoder-v1";
+ reg = <0x0 0xff351000 0x0 0x200>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "irq_dec";
+ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
+ clock-names = "aclk_vcodec", "hclk_vcodec";
+ resets = <&cru SRST_VCODEC_A>, <&cru SRST_VCODEC_H>;
+ reset-names = "video_a", "video_h";
+ power-domains = <&power RK3328_PD_VPU>;
+ iommus = <&vpu_mmu>;
+ rockchip,srv = <&vpu_service>;
+ status = "disabled";
+ };
+
vpu_mmu: iommu@ff350800 {
compatible = "rockchip,iommu";
reg = <0x0 0xff350800 0x0 0x40>;
@@ -606,6 +682,34 @@
status = "disabled";
};
+ rkvdec_srv: rkvdec-srv {
+ compatible = "rockchip,mpp-service";
+ status = "disabled";
+ };
+
+ rkvdec: rkvdec@ff36000 {
+ compatible = "rockchip,video-decoder-v1";
+ reg = <0x0 0xff360000 0x0 0x400>;
+ interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "irq_dec";
+ clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>,
+ <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
+ clock-names = "aclk_vcodec", "hclk_vcodec", "clk_cabac",
+ "clk_core";
+ assigned-clocks = <&cru ACLK_RKVDEC_PRE>, <&cru SCLK_VDEC_CORE>;
+ assigned-clock-parents = <&cru PLL_GPLL>, <&cru PLL_GPLL>;
+ assigned-clock-rates = <500000000>, <245760000>;
+ resets = <&cru SRST_VDEC_A>, <&cru SRST_VDEC_H>,
+ <&cru SRST_VDEC_NIU_A>, <&cru SRST_VDEC_NIU_H>,
+ <&cru SRST_VDEC_CABAC>, <&cru SRST_VDEC_CORE>;
+ reset-names = "video_a", "video_h", "niu_a", "niu_h",
+ "video_cabac", "video_core";
+ iommus = <&rkvdec_mmu>;
+ power-domains = <&power RK3328_PD_VIDEO>;
+ rockchip,srv = <&rkvdec_srv>;
+ status = "disabled";
+ };
+
rkvdec_mmu: iommu@ff360480 {
compatible = "rockchip,iommu";
reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>;
@@ -740,8 +844,8 @@
<15000000>, <15000000>,
<300000000>, <100000000>,
<400000000>, <100000000>,
- <50000000>, <100000000>,
- <100000000>, <100000000>,
+ <50000000>, <300000000>,
+ <300000000>, <300000000>,
<50000000>, <50000000>,
<50000000>, <50000000>,
<24000000>, <600000000>,