81 lines
3.3 KiB
Diff
81 lines
3.3 KiB
Diff
|
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
|
||
|
index 6a51f39dde56..ac7d58069eb8 100644
|
||
|
--- a/drivers/staging/media/hantro/hantro_drv.c
|
||
|
+++ b/drivers/staging/media/hantro/hantro_drv.c
|
||
|
@@ -613,6 +613,7 @@ static const struct of_device_id of_hantro_match[] = {
|
||
|
{ .compatible = "rockchip,rk3288-vpu", .data = &rk3288_vpu_variant, },
|
||
|
{ .compatible = "rockchip,rk3328-vpu", .data = &rk3328_vpu_variant, },
|
||
|
{ .compatible = "rockchip,rk3399-vpu", .data = &rk3399_vpu_variant, },
|
||
|
+ { .compatible = "rockchip,rk3568-vpu", .data = &rk3568_vpu_variant, },
|
||
|
#endif
|
||
|
#ifdef CONFIG_VIDEO_HANTRO_IMX8M
|
||
|
{ .compatible = "nxp,imx8mq-vpu-g1", .data = &imx8mq_vpu_g1_variant, },
|
||
|
diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h
|
||
|
index 4a19ae8940b9..89ec6d500938 100644
|
||
|
--- a/drivers/staging/media/hantro/hantro_hw.h
|
||
|
+++ b/drivers/staging/media/hantro/hantro_hw.h
|
||
|
@@ -307,6 +307,7 @@ extern const struct hantro_variant rk3066_vpu_variant;
|
||
|
extern const struct hantro_variant rk3288_vpu_variant;
|
||
|
extern const struct hantro_variant rk3328_vpu_variant;
|
||
|
extern const struct hantro_variant rk3399_vpu_variant;
|
||
|
+extern const struct hantro_variant rk3568_vpu_variant;
|
||
|
extern const struct hantro_variant sama5d4_vdec_variant;
|
||
|
extern const struct hantro_variant sunxi_vpu_variant;
|
||
|
|
||
|
diff --git a/drivers/staging/media/hantro/rockchip_vpu_hw.c b/drivers/staging/media/hantro/rockchip_vpu_hw.c
|
||
|
index c203b606e6e7..5e64cf068ff9 100644
|
||
|
--- a/drivers/staging/media/hantro/rockchip_vpu_hw.c
|
||
|
+++ b/drivers/staging/media/hantro/rockchip_vpu_hw.c
|
||
|
@@ -551,6 +551,20 @@ const struct hantro_variant rk3399_vpu_variant = {
|
||
|
.num_clocks = ARRAY_SIZE(rockchip_vpu_clk_names)
|
||
|
};
|
||
|
|
||
|
+const struct hantro_variant rk3568_vpu_variant = {
|
||
|
+ .dec_offset = 0x400,
|
||
|
+ .dec_fmts = rk3399_vpu_dec_fmts,
|
||
|
+ .num_dec_fmts = ARRAY_SIZE(rk3399_vpu_dec_fmts),
|
||
|
+ .codec = HANTRO_MPEG2_DECODER |
|
||
|
+ HANTRO_VP8_DECODER | HANTRO_H264_DECODER,
|
||
|
+ .codec_ops = rk3399_vpu_codec_ops,
|
||
|
+ .irqs = rockchip_vdpu2_irqs,
|
||
|
+ .num_irqs = ARRAY_SIZE(rockchip_vdpu2_irqs),
|
||
|
+ .init = rockchip_vpu_hw_init,
|
||
|
+ .clk_names = rockchip_vpu_clk_names,
|
||
|
+ .num_clocks = ARRAY_SIZE(rockchip_vpu_clk_names)
|
||
|
+};
|
||
|
+
|
||
|
const struct hantro_variant px30_vpu_variant = {
|
||
|
.enc_offset = 0x0,
|
||
|
.enc_fmts = rockchip_vpu_enc_fmts,
|
||
|
diff --git a/arch/arm64/boot/dts/rockchip/rk356x.dtsi b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||
|
index a68033a23975..33ecaafa8cb7 100644
|
||
|
--- a/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||
|
+++ b/arch/arm64/boot/dts/rockchip/rk356x.dtsi
|
||
|
@@ -390,6 +390,26 @@ power-domain@RK3568_PD_RKVENC {
|
||
|
};
|
||
|
};
|
||
|
|
||
|
+ vpu: video-codec@fdea0400 {
|
||
|
+ compatible = "rockchip,rk3568-vpu";
|
||
|
+ reg = <0x0 0xfdea0000 0x0 0x800>;
|
||
|
+ interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
+ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
|
||
|
+ clock-names = "aclk", "hclk";
|
||
|
+ iommus = <&vdpu_mmu>;
|
||
|
+ power-domains = <&power RK3568_PD_VPU>;
|
||
|
+ };
|
||
|
+
|
||
|
+ vdpu_mmu: iommu@fdea0800 {
|
||
|
+ compatible = "rockchip,rk3568-iommu";
|
||
|
+ reg = <0x0 0xfdea0800 0x0 0x40>;
|
||
|
+ interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
+ clock-names = "aclk", "iface";
|
||
|
+ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
|
||
|
+ power-domains = <&power RK3568_PD_VPU>;
|
||
|
+ #iommu-cells = <0>;
|
||
|
+ };
|
||
|
+
|
||
|
sdmmc2: mmc@fe000000 {
|
||
|
compatible = "rockchip,rk3568-dw-mshc", "rockchip,rk3288-dw-mshc";
|
||
|
reg = <0x0 0xfe000000 0x0 0x4000>;
|