video.mk 6.4 KB

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