video.mk 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  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/rpi-panel-attiny-regulator
  34. TITLE:=Raspberry Pi 7-inch touchscreen panel ATTINY regulator
  35. SUBMENU:=$(VIDEO_MENU)
  36. KCONFIG:=CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY
  37. FILES:=$(LINUX_DIR)/drivers/regulator/rpi-panel-attiny-regulator.ko
  38. AUTOLOAD:=$(call AutoLoad,67,rpi-panel-attiny-regulator)
  39. DEPENDS:=@TARGET_bcm27xx +kmod-regmap-i2c +kmod-backlight
  40. endef
  41. define KernelPackage/rpi-panel-attiny-regulator/description
  42. Driver for the ATTINY regulator on the Raspberry Pi 7-inch
  43. touchscreen unit. The regulator is used to enable power to the
  44. TC358762, display and to control backlight.
  45. endef
  46. $(eval $(call KernelPackage,rpi-panel-attiny-regulator))
  47. define KernelPackage/rpi-panel-7inch-touchscreen
  48. TITLE:=Raspberry Pi 7-inch touchscreen panel
  49. SUBMENU:=$(VIDEO_MENU)
  50. KCONFIG:= \
  51. CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN
  52. CONFIG_DRM_MIPI_DSI=y
  53. FILES:=$(LINUX_DIR)/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.ko
  54. AUTOLOAD:=$(call AutoProbe,panel-raspberrypi-touchscreen)
  55. DEPENDS:=@TARGET_bcm27xx +kmod-drm
  56. endef
  57. define KernelPackage/rpi-panel-7inch-touchscreen/description
  58. Driver for the Raspberry Pi 7" Touchscreen.
  59. endef
  60. $(eval $(call KernelPackage,rpi-panel-7inch-touchscreen))
  61. define KernelPackage/codec-bcm2835
  62. TITLE:=BCM2835 Video Codec
  63. KCONFIG:= \
  64. CONFIG_VIDEO_CODEC_BCM2835
  65. FILES:= \
  66. $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-codec/bcm2835-codec.ko
  67. AUTOLOAD:=$(call AutoLoad,67,bcm2835-codec)
  68. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vchiq-mmal-bcm2835 +kmod-video-dma-contig +kmod-video-mem2mem)
  69. endef
  70. define KernelPackage/codec-bcm2835/description
  71. V4L2 video codecs for Broadcom BCM2835 SoC.
  72. This operates over the VCHIQ interface to a service running on VideoCore.
  73. endef
  74. $(eval $(call KernelPackage,codec-bcm2835))
  75. define KernelPackage/drm-v3d
  76. SUBMENU:=$(VIDEO_MENU)
  77. TITLE:=Broadcom V3D Graphics
  78. DEPENDS:= \
  79. @TARGET_bcm27xx_bcm2711||TARGET_bcm27xx_bcm2712 +kmod-drm \
  80. +kmod-drm-shmem-helper +kmod-drm-sched
  81. KCONFIG:=CONFIG_DRM_V3D
  82. FILES:= \
  83. $(LINUX_DIR)/drivers/gpu/drm/v3d/v3d.ko
  84. AUTOLOAD:=$(call AutoProbe,v3d)
  85. endef
  86. define KernelPackage/drm-v3d/description
  87. Broadcom V3D 3.x or newer GPUs. SoCs supported include the BCM2711,
  88. BCM7268 and BCM7278.
  89. endef
  90. $(eval $(call KernelPackage,drm-v3d))
  91. define KernelPackage/drm-vc4
  92. SUBMENU:=$(VIDEO_MENU)
  93. TITLE:=Broadcom VC4 Graphics
  94. DEPENDS:= \
  95. @TARGET_bcm27xx +kmod-drm \
  96. +kmod-sound-core \
  97. +kmod-sound-soc-core
  98. KCONFIG:= \
  99. CONFIG_DRM_VC4 \
  100. CONFIG_DRM_VC4_HDMI_CEC=y
  101. FILES:= \
  102. $(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko \
  103. $(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko \
  104. $(LINUX_DIR)/drivers/gpu/drm/vc4/vc4.ko \
  105. $(LINUX_DIR)/drivers/gpu/drm/drm_kms_helper.ko \
  106. $(LINUX_DIR)/drivers/media/cec/core/cec.ko
  107. AUTOLOAD:=$(call AutoProbe,vc4)
  108. endef
  109. define KernelPackage/drm-vc4/description
  110. Direct Rendering Manager (DRM) support for Broadcom VideoCore IV GPU
  111. used in BCM2835, BCM2836 and BCM2837 SoCs (e.g. Raspberry Pi).
  112. endef
  113. $(eval $(call KernelPackage,drm-vc4))
  114. define KernelPackage/isp-bcm2835
  115. TITLE:=BCM2835 ISP
  116. KCONFIG:= \
  117. CONFIG_VIDEO_ISP_BCM2835
  118. FILES:= \
  119. $(LINUX_DIR)/drivers/staging/vc04_services/bcm2835-isp/bcm2835-isp.ko
  120. AUTOLOAD:=$(call AutoLoad,67,bcm2835-isp)
  121. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vchiq-mmal-bcm2835 +kmod-video-dma-contig)
  122. endef
  123. define KernelPackage/isp-bcm2835/description
  124. V4L2 driver for the Broadcom BCM2835 ISP hardware.
  125. This operates over the VCHIQ interface to a service running on VideoCore.
  126. endef
  127. $(eval $(call KernelPackage,isp-bcm2835))
  128. define KernelPackage/vc-sm-cma
  129. TITLE:=VideoCore Shared Memory (CMA) driver
  130. KCONFIG:= \
  131. CONFIG_BCM_VC_SM_CMA
  132. FILES:= \
  133. $(LINUX_DIR)/drivers/staging/vc04_services/vc-sm-cma/vc-sm-cma.ko
  134. $(call AddDepends/video,@TARGET_bcm27xx)
  135. endef
  136. define KernelPackage/vc-sm-cma/description
  137. Shared memory interface that supports sharing dmabufs with VideoCore.
  138. This operates over the VCHIQ interface to a service running on VideoCore.
  139. endef
  140. $(eval $(call KernelPackage,vc-sm-cma))
  141. define KernelPackage/vchiq-mmal-bcm2835
  142. TITLE:=BCM2835 MMAL VCHIQ service
  143. KCONFIG:= \
  144. CONFIG_BCM2835_VCHIQ_MMAL
  145. FILES:= \
  146. $(LINUX_DIR)/drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq.ko
  147. $(call AddDepends/video,@TARGET_bcm27xx +kmod-vc-sm-cma)
  148. endef
  149. define KernelPackage/vchiq-mmal-bcm2835/description
  150. Enables the MMAL API over VCHIQ as used for the
  151. majority of the multimedia services on VideoCore.
  152. endef
  153. $(eval $(call KernelPackage,vchiq-mmal-bcm2835))
  154. define KernelPackage/drm-rp1-dsi
  155. SUBMENU:=$(VIDEO_MENU)
  156. TITLE:=RP1 Display Serial Interface for Video
  157. KCONFIG:= \
  158. CONFIG_DRM_RP1_DSI \
  159. CONFIG_DRM_MIPI_DSI=y \
  160. CONFIG_GENERIC_PHY_MIPI_DPHY=n \
  161. CONFIG_DRM_WERROR=n
  162. FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-dsi/drm-rp1-dsi.ko
  163. AUTOLOAD:=$(call AutoLoad,67,drm-rp1-dsi)
  164. DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4 \
  165. +kmod-drm-dma-helper +kmod-drm-vram-helper
  166. endef
  167. define KernelPackage/drm-rp1-dsi/description
  168. This module manages the DSI for driving high-resolution LCD panels
  169. such as the official Raspberry Pi displays or other screens that
  170. use the DSI interface.
  171. endef
  172. $(eval $(call KernelPackage,drm-rp1-dsi))
  173. define KernelPackage/drm-rp1-dpi
  174. SUBMENU:=$(VIDEO_MENU)
  175. TITLE:=RP1 Display Parallel Interface for Video
  176. KCONFIG:= \
  177. CONFIG_DRM_RP1_DPI
  178. FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-dpi/drm-rp1-dpi.ko
  179. AUTOLOAD:=$(call AutoLoad,67,drm-rp1-dpi)
  180. DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4 \
  181. +kmod-drm-dma-helper +kmod-drm-vram-helper \
  182. +kmod-rp1-pio
  183. endef
  184. define KernelPackage/drm-rp1-dpi/description
  185. This module is or driving displays using the DPI standard.
  186. Useful for interfacing with custom or low-level LCD panels
  187. that require parallel RGB signals. Provides direct control
  188. over the timing and signal driving of raw LCD panels.
  189. Typically used in maker projects or with non-HDMI displays.
  190. endef
  191. $(eval $(call KernelPackage,drm-rp1-dpi))
  192. define KernelPackage/drm-rp1-vec
  193. SUBMENU:=$(VIDEO_MENU)
  194. TITLE:=RP1 Display Composite Video
  195. KCONFIG:= \
  196. CONFIG_DRM_RP1_VEC
  197. FILES:=$(LINUX_DIR)/drivers/gpu/drm/rp1/rp1-vec/drm-rp1-vec.ko
  198. AUTOLOAD:=$(call AutoLoad,67,drm-rp1-vec)
  199. DEPENDS:=@TARGET_bcm27xx_bcm2712 +kmod-drm-vc4 \
  200. +kmod-drm-dma-helper +kmod-drm-vram-helper
  201. endef
  202. define KernelPackage/drm-rp1-vec/description
  203. This module is used for composite video output, which is typically
  204. transmitted through the RCA jack. Primary use is onnecting older
  205. TVs or monitors that rely on analog signals via a composite interface.
  206. Handles standard-definition analog signals in NTSC and PAL.
  207. endef
  208. $(eval $(call KernelPackage,drm-rp1-vec))