mediatek-vcodec.txt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. Mediatek Video Codec
  2. Mediatek Video Codec is the video codec hw present in Mediatek SoCs which
  3. supports high resolution encoding and decoding functionalities.
  4. Required properties:
  5. - compatible : "mediatek,mt8173-vcodec-enc" for encoder
  6. "mediatek,mt8173-vcodec-dec" for decoder.
  7. - reg : Physical base address of the video codec registers and length of
  8. memory mapped region.
  9. - interrupts : interrupt number to the cpu.
  10. - mediatek,larb : must contain the local arbiters in the current Socs.
  11. - clocks : list of clock specifiers, corresponding to entries in
  12. the clock-names property.
  13. - clock-names: encoder must contain "venc_sel_src", "venc_sel",,
  14. "venc_lt_sel_src", "venc_lt_sel", decoder must contain "vcodecpll",
  15. "univpll_d2", "clk_cci400_sel", "vdec_sel", "vdecpll", "vencpll",
  16. "venc_lt_sel", "vdec_bus_clk_src".
  17. - iommus : should point to the respective IOMMU block with master port as
  18. argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
  19. for details.
  20. - mediatek,vpu : the node of video processor unit
  21. Example:
  22. vcodec_dec: vcodec@16000000 {
  23. compatible = "mediatek,mt8173-vcodec-dec";
  24. reg = <0 0x16000000 0 0x100>, /*VDEC_SYS*/
  25. <0 0x16020000 0 0x1000>, /*VDEC_MISC*/
  26. <0 0x16021000 0 0x800>, /*VDEC_LD*/
  27. <0 0x16021800 0 0x800>, /*VDEC_TOP*/
  28. <0 0x16022000 0 0x1000>, /*VDEC_CM*/
  29. <0 0x16023000 0 0x1000>, /*VDEC_AD*/
  30. <0 0x16024000 0 0x1000>, /*VDEC_AV*/
  31. <0 0x16025000 0 0x1000>, /*VDEC_PP*/
  32. <0 0x16026800 0 0x800>, /*VP8_VD*/
  33. <0 0x16027000 0 0x800>, /*VP6_VD*/
  34. <0 0x16027800 0 0x800>, /*VP8_VL*/
  35. <0 0x16028400 0 0x400>; /*VP9_VD*/
  36. interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
  37. mediatek,larb = <&larb1>;
  38. iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
  39. <&iommu M4U_PORT_HW_VDEC_PP_EXT>,
  40. <&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
  41. <&iommu M4U_PORT_HW_VDEC_PRED_RD_EXT>,
  42. <&iommu M4U_PORT_HW_VDEC_PRED_WR_EXT>,
  43. <&iommu M4U_PORT_HW_VDEC_UFO_EXT>,
  44. <&iommu M4U_PORT_HW_VDEC_VLD_EXT>,
  45. <&iommu M4U_PORT_HW_VDEC_VLD2_EXT>;
  46. mediatek,vpu = <&vpu>;
  47. power-domains = <&scpsys MT8173_POWER_DOMAIN_VDEC>;
  48. clocks = <&apmixedsys CLK_APMIXED_VCODECPLL>,
  49. <&topckgen CLK_TOP_UNIVPLL_D2>,
  50. <&topckgen CLK_TOP_CCI400_SEL>,
  51. <&topckgen CLK_TOP_VDEC_SEL>,
  52. <&topckgen CLK_TOP_VCODECPLL>,
  53. <&apmixedsys CLK_APMIXED_VENCPLL>,
  54. <&topckgen CLK_TOP_VENC_LT_SEL>,
  55. <&topckgen CLK_TOP_VCODECPLL_370P5>;
  56. clock-names = "vcodecpll",
  57. "univpll_d2",
  58. "clk_cci400_sel",
  59. "vdec_sel",
  60. "vdecpll",
  61. "vencpll",
  62. "venc_lt_sel",
  63. "vdec_bus_clk_src";
  64. };
  65. vcodec_enc: vcodec@18002000 {
  66. compatible = "mediatek,mt8173-vcodec-enc";
  67. reg = <0 0x18002000 0 0x1000>, /*VENC_SYS*/
  68. <0 0x19002000 0 0x1000>; /*VENC_LT_SYS*/
  69. interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>,
  70. <GIC_SPI 202 IRQ_TYPE_LEVEL_LOW>;
  71. mediatek,larb = <&larb3>,
  72. <&larb5>;
  73. iommus = <&iommu M4U_PORT_VENC_RCPU>,
  74. <&iommu M4U_PORT_VENC_REC>,
  75. <&iommu M4U_PORT_VENC_BSDMA>,
  76. <&iommu M4U_PORT_VENC_SV_COMV>,
  77. <&iommu M4U_PORT_VENC_RD_COMV>,
  78. <&iommu M4U_PORT_VENC_CUR_LUMA>,
  79. <&iommu M4U_PORT_VENC_CUR_CHROMA>,
  80. <&iommu M4U_PORT_VENC_REF_LUMA>,
  81. <&iommu M4U_PORT_VENC_REF_CHROMA>,
  82. <&iommu M4U_PORT_VENC_NBM_RDMA>,
  83. <&iommu M4U_PORT_VENC_NBM_WDMA>,
  84. <&iommu M4U_PORT_VENC_RCPU_SET2>,
  85. <&iommu M4U_PORT_VENC_REC_FRM_SET2>,
  86. <&iommu M4U_PORT_VENC_BSDMA_SET2>,
  87. <&iommu M4U_PORT_VENC_SV_COMA_SET2>,
  88. <&iommu M4U_PORT_VENC_RD_COMA_SET2>,
  89. <&iommu M4U_PORT_VENC_CUR_LUMA_SET2>,
  90. <&iommu M4U_PORT_VENC_CUR_CHROMA_SET2>,
  91. <&iommu M4U_PORT_VENC_REF_LUMA_SET2>,
  92. <&iommu M4U_PORT_VENC_REC_CHROMA_SET2>;
  93. mediatek,vpu = <&vpu>;
  94. clocks = <&topckgen CLK_TOP_VENCPLL_D2>,
  95. <&topckgen CLK_TOP_VENC_SEL>,
  96. <&topckgen CLK_TOP_UNIVPLL1_D2>,
  97. <&topckgen CLK_TOP_VENC_LT_SEL>;
  98. clock-names = "venc_sel_src",
  99. "venc_sel",
  100. "venc_lt_sel_src",
  101. "venc_lt_sel";
  102. };