video.mk 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # Copyright (C) 2019 OpenWrt.org
  4. define KernelPackage/camera-bcm2835
  5. TITLE:=BCM2835 Camera
  6. KCONFIG:= \
  7. CONFIG_VIDEO_BCM2835
  8. FILES:= \
  9. $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-camera/bcm2835-v4l2.ko
  10. AUTOLOAD:=$(call AutoLoad,66,bcm2835-v4l2)
  11. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vchiq-mmal-bcm2835 +kmod-video-videobuf2)
  12. endef
  13. define KernelPackage/camera-bcm2835/description
  14. Camera host interface devices for Broadcom BCM2835 SoC.
  15. This operates over the VCHIQ interface to a service running on VideoCore.
  16. endef
  17. $(eval $(call KernelPackage,camera-bcm2835))
  18. define KernelPackage/codec-bcm2835
  19. TITLE:=BCM2835 Video Codec
  20. KCONFIG:= \
  21. CONFIG_VIDEO_CODEC_BCM2835
  22. FILES:= \
  23. $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-codec/bcm2835-codec.ko
  24. AUTOLOAD:=$(call AutoLoad,67,bcm2835-codec)
  25. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vchiq-mmal-bcm2835 +kmod-video-dma-contig +kmod-video-mem2mem)
  26. endef
  27. define KernelPackage/codec-bcm2835/description
  28. V4L2 video codecs for Broadcom BCM2835 SoC.
  29. This operates over the VCHIQ interface to a service running on VideoCore.
  30. endef
  31. $(eval $(call KernelPackage,codec-bcm2835))
  32. define KernelPackage/drm-vc4
  33. SUBMENU:=$(VIDEO_MENU)
  34. TITLE:=Broadcom VC4 Graphics
  35. DEPENDS:= \
  36. @TARGET_bcm27xx +kmod-drm \
  37. +kmod-sound-core \
  38. +kmod-sound-soc-core
  39. KCONFIG:= \
  40. CONFIG_DRM_VC4 \
  41. CONFIG_DRM_VC4_HDMI_CEC=y
  42. FILES:= \
  43. $(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko \
  44. $(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko \
  45. $(LINUX_DIR)/drivers/gpu/drm/vc4/vc4.ko \
  46. $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko \
  47. $(LINUX_DIR)/drivers/media/cec/core/cec.ko
  48. AUTOLOAD:=$(call AutoProbe,vc4)
  49. endef
  50. define KernelPackage/drm-vc4/description
  51. Direct Rendering Manager (DRM) support for Broadcom VideoCore IV GPU
  52. used in BCM2835, BCM2836 and BCM2837 SoCs (e.g. Raspberry Pi).
  53. endef
  54. $(eval $(call KernelPackage,drm-vc4))
  55. define KernelPackage/isp-bcm2835
  56. TITLE:=BCM2835 ISP
  57. KCONFIG:= \
  58. CONFIG_VIDEO_ISP_BCM2835
  59. FILES:= \
  60. $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp.ko
  61. AUTOLOAD:=$(call AutoLoad,67,bcm2835-isp)
  62. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vchiq-mmal-bcm2835 +kmod-video-dma-contig)
  63. endef
  64. define KernelPackage/isp-bcm2835/description
  65. V4L2 driver for the Broadcom BCM2835 ISP hardware.
  66. This operates over the VCHIQ interface to a service running on VideoCore.
  67. endef
  68. $(eval $(call KernelPackage,isp-bcm2835))
  69. define KernelPackage/vc-sm-cma
  70. TITLE:=VideoCore Shared Memory (CMA) driver
  71. KCONFIG:= \
  72. CONFIG_BCM_VC_SM_CMA
  73. FILES:= \
  74. $(LINUX_DIR)/drivers/staging/vc04_services/vc-sm-cma/vc-sm-cma.ko
  75. $(call AddDepends/video,@TARGET_bcm27xx)
  76. endef
  77. define KernelPackage/vc-sm-cma/description
  78. Shared memory interface that supports sharing dmabufs with VideoCore.
  79. This operates over the VCHIQ interface to a service running on VideoCore.
  80. endef
  81. $(eval $(call KernelPackage,vc-sm-cma))
  82. define KernelPackage/vchiq-mmal-bcm2835
  83. TITLE:=BCM2835 MMAL VCHIQ service
  84. KCONFIG:= \
  85. CONFIG_BCM2835_VCHIQ_MMAL
  86. FILES:= \
  87. $(LINUX_DIR)/drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq.ko
  88. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vc-sm-cma)
  89. endef
  90. define KernelPackage/vchiq-mmal-bcm2835/description
  91. Enables the MMAL API over VCHIQ as used for the
  92. majority of the multimedia services on VideoCore.
  93. endef
  94. $(eval $(call KernelPackage,vchiq-mmal-bcm2835))
  95. define KernelPackage/drm-rp1-dsi
  96. SUBMENU:=$(VIDEO_MENU)
  97. TITLE:=RP1 Display Serial Interface for Video
  98. KCONFIG:= \
  99. CONFIG_DRM_RP1_DSI \
  100. CONFIG_DRM_GEM_DMA_HELPER \
  101. CONFIG_DRM_KMS_HELPER \
  102. CONFIG_DRM_MIPI_DSI=y \
  103. CONFIG_DRM_VRAM_HELPER=n \
  104. CONFIG_DRM_TTM=n \
  105. CONFIG_DRM_TTM_HELPER=n \
  106. CONFIG_GENERIC_PHY_MIPI_DPHY=n \
  107. CONFIG_DRM_WERROR=n
  108. FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-dsi/drm-rp1-dsi.ko
  109. AUTOLOAD:=$(call AutoLoad,67,drm-rp1-dsi)
  110. DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4
  111. endef
  112. define KernelPackage/drm-rp1-dsi/description
  113. This module manages the DSI for driving high-resolution LCD panels
  114. such as the official Raspberry Pi displays or other screens that
  115. use the DSI interface.
  116. endef
  117. $(eval $(call KernelPackage,drm-rp1-dsi))
  118. define KernelPackage/drm-rp1-dpi
  119. SUBMENU:=$(VIDEO_MENU)
  120. TITLE:=RP1 Display Parallel Interface for Video
  121. KCONFIG:= \
  122. CONFIG_DRM_RP1_DPI \
  123. CONFIG_DRM_GEM_DMA_HELPER \
  124. CONFIG_DRM_KMS_HELPER \
  125. CONFIG_DRM_VRAM_HELPER=n \
  126. CONFIG_DRM_TTM=n \
  127. CONFIG_DRM_TTM_HELPER=n
  128. FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-dpi/drm-rp1-dpi.ko
  129. AUTOLOAD:=$(call AutoLoad,67,drm-rp1-dpi)
  130. DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4 +kmod-rp1-pio
  131. endef
  132. define KernelPackage/drm-rp1-dpi/description
  133. This module is or driving displays using the DPI standard.
  134. Useful for interfacing with custom or low-level LCD panels
  135. that require parallel RGB signals. Provides direct control
  136. over the timing and signal driving of raw LCD panels.
  137. Typically used in maker projects or with non-HDMI displays.
  138. endef
  139. $(eval $(call KernelPackage,drm-rp1-dpi))
  140. define KernelPackage/drm-rp1-vec
  141. SUBMENU:=$(VIDEO_MENU)
  142. TITLE:=RP1 Display Composite Video
  143. KCONFIG:= \
  144. CONFIG_DRM_RP1_VEC \
  145. CONFIG_DRM_GEM_DMA_HELPER \
  146. CONFIG_DRM_KMS_HELPER \
  147. CONFIG_DRM_VRAM_HELPER=n \
  148. CONFIG_DRM_TTM=n \
  149. CONFIG_DRM_TTM_HELPER=n
  150. FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-vec/drm-rp1-vec.ko
  151. AUTOLOAD:=$(call AutoLoad,67,drm-rp1-vec)
  152. DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4
  153. endef
  154. define KernelPackage/drm-rp1-vec/description
  155. This module is used for composite video output, which is typically
  156. transmitted through the RCA jack. Primary use is onnecting older
  157. TVs or monitors that rely on analog signals via a composite interface.
  158. Handles standard-definition analog signals in NTSC and PAL.
  159. endef
  160. $(eval $(call KernelPackage,drm-rp1-vec))