qcom,venus.txt 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. * Qualcomm Venus video encoder/decoder accelerators
  2. - compatible:
  3. Usage: required
  4. Value type: <stringlist>
  5. Definition: Value should contain one of:
  6. - "qcom,msm8916-venus"
  7. - "qcom,msm8996-venus"
  8. - "qcom,sdm845-venus"
  9. - reg:
  10. Usage: required
  11. Value type: <prop-encoded-array>
  12. Definition: Register base address and length of the register map.
  13. - interrupts:
  14. Usage: required
  15. Value type: <prop-encoded-array>
  16. Definition: Should contain interrupt line number.
  17. - clocks:
  18. Usage: required
  19. Value type: <prop-encoded-array>
  20. Definition: A List of phandle and clock specifier pairs as listed
  21. in clock-names property.
  22. - clock-names:
  23. Usage: required for msm8916
  24. Value type: <stringlist>
  25. Definition: Should contain the following entries:
  26. - "core" Core video accelerator clock
  27. - "iface" Video accelerator AHB clock
  28. - "bus" Video accelerator AXI clock
  29. - clock-names:
  30. Usage: required for msm8996
  31. Value type: <stringlist>
  32. Definition: Should contain the following entries:
  33. - "core" Core video accelerator clock
  34. - "iface" Video accelerator AHB clock
  35. - "bus" Video accelerator AXI clock
  36. - "mbus" Video MAXI clock
  37. - power-domains:
  38. Usage: required
  39. Value type: <prop-encoded-array>
  40. Definition: A phandle and power domain specifier pairs to the
  41. power domain which is responsible for collapsing
  42. and restoring power to the peripheral.
  43. - iommus:
  44. Usage: required
  45. Value type: <prop-encoded-array>
  46. Definition: A list of phandle and IOMMU specifier pairs.
  47. - memory-region:
  48. Usage: required
  49. Value type: <phandle>
  50. Definition: reference to the reserved-memory for the firmware
  51. memory region.
  52. * Subnodes
  53. The Venus video-codec node must contain two subnodes representing
  54. video-decoder and video-encoder.
  55. Every of video-encoder or video-decoder subnode should have:
  56. - compatible:
  57. Usage: required
  58. Value type: <stringlist>
  59. Definition: Value should contain "venus-decoder" or "venus-encoder"
  60. - clocks:
  61. Usage: required for msm8996
  62. Value type: <prop-encoded-array>
  63. Definition: A List of phandle and clock specifier pairs as listed
  64. in clock-names property.
  65. - clock-names:
  66. Usage: required for msm8996
  67. Value type: <stringlist>
  68. Definition: Should contain the following entries:
  69. - "core" Subcore video accelerator clock
  70. - power-domains:
  71. Usage: required for msm8996
  72. Value type: <prop-encoded-array>
  73. Definition: A phandle and power domain specifier pairs to the
  74. power domain which is responsible for collapsing
  75. and restoring power to the subcore.
  76. * An Example
  77. video-codec@1d00000 {
  78. compatible = "qcom,msm8916-venus";
  79. reg = <0x01d00000 0xff000>;
  80. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  81. clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
  82. <&gcc GCC_VENUS0_AHB_CLK>,
  83. <&gcc GCC_VENUS0_AXI_CLK>;
  84. clock-names = "core", "iface", "bus";
  85. power-domains = <&gcc VENUS_GDSC>;
  86. iommus = <&apps_iommu 5>;
  87. memory-region = <&venus_mem>;
  88. video-decoder {
  89. compatible = "venus-decoder";
  90. clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
  91. clock-names = "core";
  92. power-domains = <&mmcc VENUS_CORE0_GDSC>;
  93. };
  94. video-encoder {
  95. compatible = "venus-encoder";
  96. clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
  97. clock-names = "core";
  98. power-domains = <&mmcc VENUS_CORE1_GDSC>;
  99. };
  100. };