mirror of
https://github.com/Fishwaldo/build.git
synced 2025-07-23 13:29:33 +00:00
* Introducing Rockchip rk322x SoC support Main features: - Legacy kernel flavour based upon stable v2.x rk3288 Rockchip branch (https://github.com/rockchip-linux/kernel/tree/stable-4.4-rk3288-linux-v2.x) - Current kernel flavour based on mainline 5.6.y kernel - Mainline u-boot (v2020.04) - Single generic tv box target (rk322x-box) which boots on all the known tv boxes - Hardware devices (eMMC/NAND, led wiring configuration, SoC variant selection) modulation done by user at runtime via device tree overlays - a script (rk322x-config) is provided for autodetection and simple configuration by inexperienced users; - Bits added to armbian-hardware-optimization to set affinity for irq handlers - rk322x-box targets already added to targets.conf for automatic image creation * Removed disabled patches * Restored mysteriously removed comment character
97 lines
3.7 KiB
Diff
97 lines
3.7 KiB
Diff
diff --git a/Documentation/devicetree/bindings/media/rockchip-vpu.yaml b/Documentation/devicetree/bindings/media/rockchip-vpu.yaml
|
|
index a0c45e05cf03..a20cfaa8973e 100644
|
|
--- a/Documentation/devicetree/bindings/media/rockchip-vpu.yaml
|
|
+++ b/Documentation/devicetree/bindings/media/rockchip-vpu.yaml
|
|
@@ -16,6 +16,7 @@ description:
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
+ - rockchip,rk322x-vpu
|
|
- rockchip,rk3288-vpu
|
|
- rockchip,rk3328-vpu
|
|
- rockchip,rk3399-vpu
|
|
diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
|
|
index f7a50b903a7d..2ed8aa7ae520 100644
|
|
--- a/arch/arm/boot/dts/rk322x.dtsi
|
|
+++ b/arch/arm/boot/dts/rk322x.dtsi
|
|
@@ -676,6 +676,18 @@
|
|
};
|
|
};
|
|
|
|
+ vpu: video-codec@20020000 {
|
|
+ compatible = "rockchip,rk322x-vpu";
|
|
+ reg = <0x20020000 0x800>;
|
|
+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
|
|
+ <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-names = "vepu", "vdpu";
|
|
+ clocks = <&cru ACLK_VPU>, <&cru HCLK_VPU>;
|
|
+ clock-names = "aclk", "hclk";
|
|
+ iommus = <&vpu_mmu>;
|
|
+ power-domains = <&power RK3228_PD_VPU>;
|
|
+ };
|
|
+
|
|
vpu_mmu: iommu@20020800 {
|
|
compatible = "rockchip,iommu";
|
|
reg = <0x20020800 0x100>;
|
|
diff --git a/drivers/staging/media/hantro/Kconfig b/drivers/staging/media/hantro/Kconfig
|
|
index de77fe6554e7..9f99d1c9f453 100644
|
|
--- a/drivers/staging/media/hantro/Kconfig
|
|
+++ b/drivers/staging/media/hantro/Kconfig
|
|
@@ -20,4 +20,4 @@ config VIDEO_HANTRO_ROCKCHIP
|
|
depends on ARCH_ROCKCHIP || COMPILE_TEST
|
|
default y
|
|
help
|
|
- Enable support for RK3288, RK3328, and RK3399 SoCs.
|
|
+ Enable support for RK322x, RK3288, RK3328, and RK3399 SoCs.
|
|
diff --git a/drivers/staging/media/hantro/hantro_drv.c b/drivers/staging/media/hantro/hantro_drv.c
|
|
index a732beeb3bb6..fae9555a349b 100644
|
|
--- a/drivers/staging/media/hantro/hantro_drv.c
|
|
+++ b/drivers/staging/media/hantro/hantro_drv.c
|
|
@@ -469,6 +469,7 @@ static const struct of_device_id of_hantro_match[] = {
|
|
{ .compatible = "rockchip,rk3399-vpu", .data = &rk3399_vpu_variant, },
|
|
{ .compatible = "rockchip,rk3328-vpu", .data = &rk3328_vpu_variant, },
|
|
{ .compatible = "rockchip,rk3288-vpu", .data = &rk3288_vpu_variant, },
|
|
+ { .compatible = "rockchip,rk322x-vpu", .data = &rk322x_vpu_variant, },
|
|
#endif
|
|
{ /* sentinel */ }
|
|
};
|
|
diff --git a/drivers/staging/media/hantro/hantro_hw.h b/drivers/staging/media/hantro/hantro_hw.h
|
|
index 33c1ce169203..e64369e01a21 100644
|
|
--- a/drivers/staging/media/hantro/hantro_hw.h
|
|
+++ b/drivers/staging/media/hantro/hantro_hw.h
|
|
@@ -157,6 +157,7 @@ enum hantro_enc_fmt {
|
|
extern const struct hantro_variant rk3399_vpu_variant;
|
|
extern const struct hantro_variant rk3328_vpu_variant;
|
|
extern const struct hantro_variant rk3288_vpu_variant;
|
|
+extern const struct hantro_variant rk322x_vpu_variant;
|
|
|
|
extern const struct hantro_postproc_regs hantro_g1_postproc_regs;
|
|
|
|
diff --git a/drivers/staging/media/hantro/rk3399_vpu_hw.c b/drivers/staging/media/hantro/rk3399_vpu_hw.c
|
|
index 78f878ca01ff..0a6c021c2332 100644
|
|
--- a/drivers/staging/media/hantro/rk3399_vpu_hw.c
|
|
+++ b/drivers/staging/media/hantro/rk3399_vpu_hw.c
|
|
@@ -241,3 +241,20 @@ const struct hantro_variant rk3328_vpu_variant = {
|
|
.clk_names = rk3399_clk_names,
|
|
.num_clocks = ARRAY_SIZE(rk3399_clk_names),
|
|
};
|
|
+
|
|
+const struct hantro_variant rk322x_vpu_variant = {
|
|
+ .enc_offset = 0x0,
|
|
+ .enc_fmts = rk3399_vpu_enc_fmts,
|
|
+ .num_enc_fmts = ARRAY_SIZE(rk3399_vpu_enc_fmts),
|
|
+ .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 = rk3399_irqs,
|
|
+ .num_irqs = ARRAY_SIZE(rk3399_irqs),
|
|
+ .init = rk3399_vpu_hw_init,
|
|
+ .clk_names = rk3399_clk_names,
|
|
+ .num_clocks = ARRAY_SIZE(rk3399_clk_names)
|
|
+};
|
|
--
|
|
2.17.1
|
|
|