1# SPDX-License-Identifier: GPL-2.0-only 2# 3# Platform drivers 4# Most drivers here are currently for webcam support 5 6menuconfig V4L_PLATFORM_DRIVERS 7 bool "V4L platform devices" 8 help 9 Say Y here to enable support for platform-specific V4L drivers. 10 11if V4L_PLATFORM_DRIVERS 12 13source "drivers/media/platform/marvell-ccic/Kconfig" 14 15config VIDEO_VIA_CAMERA 16 tristate "VIAFB camera controller support" 17 depends on FB_VIA && VIDEO_V4L2 18 select VIDEOBUF2_DMA_SG 19 select VIDEO_OV7670 20 help 21 Driver support for the integrated camera controller in VIA 22 Chrome9 chipsets. Currently only tested on OLPC xo-1.5 systems 23 with ov7670 sensors. 24 25# 26# Platform multimedia device configuration 27# 28source "drivers/media/platform/cadence/Kconfig" 29 30source "drivers/media/platform/davinci/Kconfig" 31 32source "drivers/media/platform/omap/Kconfig" 33 34config VIDEO_ASPEED 35 tristate "Aspeed AST2400 and AST2500 Video Engine driver" 36 depends on VIDEO_V4L2 37 select VIDEOBUF2_DMA_CONTIG 38 help 39 Support for the Aspeed Video Engine (VE) embedded in the Aspeed 40 AST2400 and AST2500 SOCs. The VE can capture and compress video data 41 from digital or analog sources. 42 43config VIDEO_SH_VOU 44 tristate "SuperH VOU video output driver" 45 depends on VIDEO_DEV && I2C 46 depends on ARCH_SHMOBILE || COMPILE_TEST 47 select VIDEOBUF2_DMA_CONTIG 48 help 49 Support for the Video Output Unit (VOU) on SuperH SoCs. 50 51config VIDEO_VIU 52 tristate "Freescale VIU Video Driver" 53 depends on VIDEO_V4L2 && (PPC_MPC512x || COMPILE_TEST) && I2C 54 select VIDEOBUF_DMA_CONTIG 55 default y 56 help 57 Support for Freescale VIU video driver. This device captures 58 video data, or overlays video on DIU frame buffer. 59 60 Say Y here if you want to enable VIU device on MPC5121e Rev2+. 61 In doubt, say N. 62 63config VIDEO_MUX 64 tristate "Video Multiplexer" 65 select MULTIPLEXER 66 depends on VIDEO_V4L2 && OF 67 select MEDIA_CONTROLLER 68 select VIDEO_V4L2_SUBDEV_API 69 select REGMAP 70 select V4L2_FWNODE 71 help 72 This driver provides support for N:1 video bus multiplexers. 73 74config VIDEO_OMAP3 75 tristate "OMAP 3 Camera support" 76 depends on VIDEO_V4L2 && I2C 77 depends on (ARCH_OMAP3 && OMAP_IOMMU) || COMPILE_TEST 78 depends on COMMON_CLK && OF 79 select ARM_DMA_USE_IOMMU if OMAP_IOMMU 80 select MEDIA_CONTROLLER 81 select VIDEO_V4L2_SUBDEV_API 82 select VIDEOBUF2_DMA_CONTIG 83 select MFD_SYSCON 84 select V4L2_FWNODE 85 help 86 Driver for an OMAP 3 camera controller. 87 88config VIDEO_OMAP3_DEBUG 89 bool "OMAP 3 Camera debug messages" 90 depends on VIDEO_OMAP3 91 help 92 Enable debug messages on OMAP 3 camera controller driver. 93 94config VIDEO_PXA27x 95 tristate "PXA27x Quick Capture Interface driver" 96 depends on VIDEO_DEV && VIDEO_V4L2 97 depends on PXA27x || COMPILE_TEST 98 select VIDEOBUF2_DMA_SG 99 select SG_SPLIT 100 select V4L2_FWNODE 101 help 102 This is a v4l2 driver for the PXA27x Quick Capture Interface 103 104config VIDEO_QCOM_CAMSS 105 tristate "Qualcomm V4L2 Camera Subsystem driver" 106 depends on VIDEO_V4L2 107 depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST 108 select MEDIA_CONTROLLER 109 select VIDEO_V4L2_SUBDEV_API 110 select VIDEOBUF2_DMA_SG 111 select V4L2_FWNODE 112 113config VIDEO_S3C_CAMIF 114 tristate "Samsung S3C24XX/S3C64XX SoC Camera Interface driver" 115 depends on VIDEO_V4L2 && I2C && PM 116 depends on ARCH_S3C64XX || PLAT_S3C24XX || COMPILE_TEST 117 select MEDIA_CONTROLLER 118 select VIDEO_V4L2_SUBDEV_API 119 select VIDEOBUF2_DMA_CONTIG 120 help 121 This is a v4l2 driver for s3c24xx and s3c64xx SoC series camera 122 host interface (CAMIF). 123 124 To compile this driver as a module, choose M here: the module 125 will be called s3c-camif. 126 127config VIDEO_STM32_DCMI 128 tristate "STM32 Digital Camera Memory Interface (DCMI) support" 129 depends on VIDEO_V4L2 && OF 130 depends on ARCH_STM32 || COMPILE_TEST 131 select VIDEOBUF2_DMA_CONTIG 132 select MEDIA_CONTROLLER 133 select V4L2_FWNODE 134 help 135 This module makes the STM32 Digital Camera Memory Interface (DCMI) 136 available as a v4l2 device. 137 138 To compile this driver as a module, choose M here: the module 139 will be called stm32-dcmi. 140 141config VIDEO_RENESAS_CEU 142 tristate "Renesas Capture Engine Unit (CEU) driver" 143 depends on VIDEO_DEV && VIDEO_V4L2 144 depends on ARCH_SHMOBILE || ARCH_R7S72100 || COMPILE_TEST 145 select VIDEOBUF2_DMA_CONTIG 146 select V4L2_FWNODE 147 help 148 This is a v4l2 driver for the Renesas CEU Interface 149 150source "drivers/media/platform/exynos4-is/Kconfig" 151source "drivers/media/platform/am437x/Kconfig" 152source "drivers/media/platform/xilinx/Kconfig" 153source "drivers/media/platform/rcar-vin/Kconfig" 154source "drivers/media/platform/atmel/Kconfig" 155source "drivers/media/platform/sunxi/Kconfig" 156 157config VIDEO_TI_CAL 158 tristate "TI CAL (Camera Adaptation Layer) driver" 159 depends on VIDEO_DEV && VIDEO_V4L2 160 select MEDIA_CONTROLLER 161 select VIDEO_V4L2_SUBDEV_API 162 depends on SOC_DRA7XX || ARCH_K3 || COMPILE_TEST 163 select VIDEOBUF2_DMA_CONTIG 164 select V4L2_FWNODE 165 help 166 Support for the TI CAL (Camera Adaptation Layer) block 167 found on DRA72X SoC. 168 In TI Technical Reference Manual this module is referred as 169 Camera Interface Subsystem (CAMSS). 170 171endif # V4L_PLATFORM_DRIVERS 172 173menuconfig V4L_MEM2MEM_DRIVERS 174 bool "Memory-to-memory multimedia devices" 175 depends on VIDEO_V4L2 176 help 177 Say Y here to enable selecting drivers for V4L devices that 178 use system memory for both source and destination buffers, as opposed 179 to capture and output drivers, which use memory buffers for just 180 one of those. 181 182if V4L_MEM2MEM_DRIVERS 183 184config VIDEO_CODA 185 tristate "Chips&Media Coda multi-standard codec IP" 186 depends on VIDEO_DEV && VIDEO_V4L2 && (ARCH_MXC || COMPILE_TEST) 187 select SRAM 188 select VIDEOBUF2_DMA_CONTIG 189 select VIDEOBUF2_VMALLOC 190 select V4L2_JPEG_HELPER 191 select V4L2_MEM2MEM_DEV 192 select GENERIC_ALLOCATOR 193 help 194 Coda is a range of video codec IPs that supports 195 H.264, MPEG-4, and other video formats. 196 197config VIDEO_IMX_VDOA 198 def_tristate VIDEO_CODA if SOC_IMX6Q || COMPILE_TEST 199 200config VIDEO_IMX_PXP 201 tristate "i.MX Pixel Pipeline (PXP)" 202 depends on VIDEO_DEV && VIDEO_V4L2 && (ARCH_MXC || COMPILE_TEST) 203 select VIDEOBUF2_DMA_CONTIG 204 select V4L2_MEM2MEM_DEV 205 help 206 The i.MX Pixel Pipeline is a memory-to-memory engine for scaling, 207 color space conversion, and rotation. 208 209config VIDEO_MEDIATEK_JPEG 210 tristate "Mediatek JPEG Codec driver" 211 depends on MTK_IOMMU_V1 || MTK_IOMMU || COMPILE_TEST 212 depends on VIDEO_DEV && VIDEO_V4L2 213 depends on ARCH_MEDIATEK || COMPILE_TEST 214 select VIDEOBUF2_DMA_CONTIG 215 select V4L2_MEM2MEM_DEV 216 help 217 Mediatek jpeg codec driver provides HW capability to decode 218 JPEG format 219 220 To compile this driver as a module, choose M here: the 221 module will be called mtk-jpeg 222 223config VIDEO_MEDIATEK_VPU 224 tristate "Mediatek Video Processor Unit" 225 depends on VIDEO_DEV && VIDEO_V4L2 226 depends on ARCH_MEDIATEK || COMPILE_TEST 227 help 228 This driver provides downloading VPU firmware and 229 communicating with VPU. This driver for hw video 230 codec embedded in Mediatek's MT8173 SOCs. It is able 231 to handle video decoding/encoding in a range of formats. 232 233 To compile this driver as a module, choose M here: the 234 module will be called mtk-vpu. 235 236config VIDEO_MEDIATEK_MDP 237 tristate "Mediatek MDP driver" 238 depends on MTK_IOMMU || COMPILE_TEST 239 depends on VIDEO_DEV && VIDEO_V4L2 240 depends on ARCH_MEDIATEK || COMPILE_TEST 241 select VIDEOBUF2_DMA_CONTIG 242 select V4L2_MEM2MEM_DEV 243 select VIDEO_MEDIATEK_VPU 244 help 245 It is a v4l2 driver and present in Mediatek MT8173 SoCs. 246 The driver supports for scaling and color space conversion. 247 248 To compile this driver as a module, choose M here: the 249 module will be called mtk-mdp. 250 251config VIDEO_MEDIATEK_VCODEC 252 tristate "Mediatek Video Codec driver" 253 depends on MTK_IOMMU || COMPILE_TEST 254 depends on VIDEO_DEV && VIDEO_V4L2 255 depends on ARCH_MEDIATEK || COMPILE_TEST 256 select VIDEOBUF2_DMA_CONTIG 257 select V4L2_MEM2MEM_DEV 258 select VIDEO_MEDIATEK_VPU 259 select MTK_SCP 260 help 261 Mediatek video codec driver provides HW capability to 262 encode and decode in a range of video formats 263 This driver rely on VPU driver to communicate with VPU. 264 265 To compile this driver as modules, choose M here: the 266 modules will be called mtk-vcodec-dec and mtk-vcodec-enc. 267 268config VIDEO_MEM2MEM_DEINTERLACE 269 tristate "Deinterlace support" 270 depends on VIDEO_DEV && VIDEO_V4L2 271 depends on HAS_DMA 272 select VIDEOBUF2_DMA_CONTIG 273 select V4L2_MEM2MEM_DEV 274 help 275 Generic deinterlacing V4L2 driver. 276 277config VIDEO_SAMSUNG_S5P_G2D 278 tristate "Samsung S5P and EXYNOS4 G2D 2d graphics accelerator driver" 279 depends on VIDEO_DEV && VIDEO_V4L2 280 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 281 select VIDEOBUF2_DMA_CONTIG 282 select V4L2_MEM2MEM_DEV 283 help 284 This is a v4l2 driver for Samsung S5P and EXYNOS4 G2D 285 2d graphics accelerator. 286 287config VIDEO_SAMSUNG_S5P_JPEG 288 tristate "Samsung S5P/Exynos3250/Exynos4 JPEG codec driver" 289 depends on VIDEO_DEV && VIDEO_V4L2 290 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 291 select VIDEOBUF2_DMA_CONTIG 292 select V4L2_MEM2MEM_DEV 293 help 294 This is a v4l2 driver for Samsung S5P, EXYNOS3250 295 and EXYNOS4 JPEG codec 296 297config VIDEO_SAMSUNG_S5P_MFC 298 tristate "Samsung S5P MFC Video Codec" 299 depends on VIDEO_DEV && VIDEO_V4L2 300 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 301 select VIDEOBUF2_DMA_CONTIG 302 help 303 MFC 5.1 and 6.x driver for V4L2 304 305config VIDEO_MX2_EMMAPRP 306 tristate "MX2 eMMa-PrP support" 307 depends on VIDEO_DEV && VIDEO_V4L2 308 depends on SOC_IMX27 || COMPILE_TEST 309 select VIDEOBUF2_DMA_CONTIG 310 select V4L2_MEM2MEM_DEV 311 help 312 MX2X chips have a PrP that can be used to process buffers from 313 memory to memory. Operations include resizing and format 314 conversion. 315 316config VIDEO_SAMSUNG_EXYNOS_GSC 317 tristate "Samsung Exynos G-Scaler driver" 318 depends on VIDEO_DEV && VIDEO_V4L2 319 depends on ARCH_EXYNOS || COMPILE_TEST 320 select VIDEOBUF2_DMA_CONTIG 321 select V4L2_MEM2MEM_DEV 322 help 323 This is a v4l2 driver for Samsung EXYNOS5 SoC G-Scaler. 324 325config VIDEO_STI_BDISP 326 tristate "STMicroelectronics BDISP 2D blitter driver" 327 depends on VIDEO_DEV && VIDEO_V4L2 328 depends on ARCH_STI || COMPILE_TEST 329 select VIDEOBUF2_DMA_CONTIG 330 select V4L2_MEM2MEM_DEV 331 help 332 This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. 333 334config VIDEO_STI_HVA 335 tristate "STMicroelectronics HVA multi-format video encoder V4L2 driver" 336 depends on VIDEO_DEV && VIDEO_V4L2 337 depends on ARCH_STI || COMPILE_TEST 338 select VIDEOBUF2_DMA_CONTIG 339 select V4L2_MEM2MEM_DEV 340 help 341 This V4L2 driver enables HVA (Hardware Video Accelerator) multi-format 342 video encoder of STMicroelectronics SoC, allowing hardware encoding of 343 raw uncompressed formats in various compressed video bitstreams format. 344 345 To compile this driver as a module, choose M here: 346 the module will be called st-hva. 347 348config VIDEO_STI_HVA_DEBUGFS 349 bool "Export STMicroelectronics HVA internals in debugfs" 350 depends on VIDEO_STI_HVA 351 depends on DEBUG_FS 352 help 353 Select this to see information about the internal state and the last 354 operation of STMicroelectronics HVA multi-format video encoder in 355 debugfs. 356 357 Choose N unless you know you need this. 358 359config VIDEO_STI_DELTA 360 tristate "STMicroelectronics DELTA multi-format video decoder V4L2 driver" 361 depends on VIDEO_DEV && VIDEO_V4L2 362 depends on ARCH_STI || COMPILE_TEST 363 help 364 This V4L2 driver enables DELTA multi-format video decoder 365 of STMicroelectronics STiH4xx SoC series allowing hardware 366 decoding of various compressed video bitstream format in 367 raw uncompressed format. 368 369 Use this option to see the decoders available for such 370 hardware. 371 372 Please notice that the driver will only be built if 373 at least one of the DELTA decoder below is selected. 374 375if VIDEO_STI_DELTA 376 377config VIDEO_STI_DELTA_MJPEG 378 bool "STMicroelectronics DELTA MJPEG support" 379 default y 380 help 381 Enables DELTA MJPEG hardware support. 382 383 To compile this driver as a module, choose M here: 384 the module will be called st-delta. 385 386config VIDEO_STI_DELTA_DRIVER 387 tristate 388 depends on VIDEO_STI_DELTA 389 depends on VIDEO_STI_DELTA_MJPEG 390 default VIDEO_STI_DELTA_MJPEG 391 select VIDEOBUF2_DMA_CONTIG 392 select V4L2_MEM2MEM_DEV 393 select RPMSG 394 395endif # VIDEO_STI_DELTA 396 397config VIDEO_RENESAS_FDP1 398 tristate "Renesas Fine Display Processor" 399 depends on VIDEO_DEV && VIDEO_V4L2 400 depends on ARCH_RENESAS || COMPILE_TEST 401 depends on (!ARM64 && !VIDEO_RENESAS_FCP) || VIDEO_RENESAS_FCP 402 select VIDEOBUF2_DMA_CONTIG 403 select V4L2_MEM2MEM_DEV 404 help 405 This is a V4L2 driver for the Renesas Fine Display Processor 406 providing colour space conversion, and de-interlacing features. 407 408 To compile this driver as a module, choose M here: the module 409 will be called rcar_fdp1. 410 411config VIDEO_RENESAS_JPU 412 tristate "Renesas JPEG Processing Unit" 413 depends on VIDEO_DEV && VIDEO_V4L2 414 depends on ARCH_RENESAS || COMPILE_TEST 415 select VIDEOBUF2_DMA_CONTIG 416 select V4L2_MEM2MEM_DEV 417 help 418 This is a V4L2 driver for the Renesas JPEG Processing Unit. 419 420 To compile this driver as a module, choose M here: the module 421 will be called rcar_jpu. 422 423config VIDEO_RENESAS_FCP 424 tristate "Renesas Frame Compression Processor" 425 depends on ARCH_RENESAS || COMPILE_TEST 426 depends on OF 427 help 428 This is a driver for the Renesas Frame Compression Processor (FCP). 429 The FCP is a companion module of video processing modules in the 430 Renesas R-Car Gen3 and RZ/G2 SoCs. It handles memory access for 431 the codec, VSP and FDP modules. 432 433 To compile this driver as a module, choose M here: the module 434 will be called rcar-fcp. 435 436config VIDEO_RENESAS_VSP1 437 tristate "Renesas VSP1 Video Processing Engine" 438 depends on VIDEO_V4L2 439 depends on ARCH_RENESAS || COMPILE_TEST 440 depends on (!ARM64 && !VIDEO_RENESAS_FCP) || VIDEO_RENESAS_FCP 441 select MEDIA_CONTROLLER 442 select VIDEO_V4L2_SUBDEV_API 443 select VIDEOBUF2_DMA_CONTIG 444 select VIDEOBUF2_VMALLOC 445 help 446 This is a V4L2 driver for the Renesas VSP1 video processing engine. 447 448 To compile this driver as a module, choose M here: the module 449 will be called vsp1. 450 451config VIDEO_ROCKCHIP_RGA 452 tristate "Rockchip Raster 2d Graphic Acceleration Unit" 453 depends on VIDEO_DEV && VIDEO_V4L2 454 depends on ARCH_ROCKCHIP || COMPILE_TEST 455 select VIDEOBUF2_DMA_SG 456 select V4L2_MEM2MEM_DEV 457 help 458 This is a v4l2 driver for Rockchip SOC RGA 2d graphics accelerator. 459 Rockchip RGA is a separate 2D raster graphic acceleration unit. 460 It accelerates 2D graphics operations, such as point/line drawing, 461 image scaling, rotation, BitBLT, alpha blending and image blur/sharpness. 462 463 To compile this driver as a module choose m here. 464 465config VIDEO_TI_VPE 466 tristate "TI VPE (Video Processing Engine) driver" 467 depends on VIDEO_DEV && VIDEO_V4L2 468 depends on SOC_DRA7XX || COMPILE_TEST 469 select VIDEOBUF2_DMA_CONTIG 470 select V4L2_MEM2MEM_DEV 471 select VIDEO_TI_VPDMA 472 select VIDEO_TI_SC 473 select VIDEO_TI_CSC 474 help 475 Support for the TI VPE(Video Processing Engine) block 476 found on DRA7XX SoC. 477 478config VIDEO_TI_VPE_DEBUG 479 bool "VPE debug messages" 480 depends on VIDEO_TI_VPE 481 help 482 Enable debug messages on VPE driver. 483 484config VIDEO_QCOM_VENUS 485 tristate "Qualcomm Venus V4L2 encoder/decoder driver" 486 depends on VIDEO_DEV && VIDEO_V4L2 487 depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST 488 depends on INTERCONNECT || !INTERCONNECT 489 select QCOM_MDT_LOADER if ARCH_QCOM 490 select QCOM_SCM if ARCH_QCOM 491 select VIDEOBUF2_DMA_SG 492 select V4L2_MEM2MEM_DEV 493 help 494 This is a V4L2 driver for Qualcomm Venus video accelerator 495 hardware. It accelerates encoding and decoding operations 496 on various Qualcomm SoCs. 497 To compile this driver as a module choose m here. 498 499config VIDEO_SUN8I_DEINTERLACE 500 tristate "Allwinner Deinterlace driver" 501 depends on VIDEO_DEV && VIDEO_V4L2 502 depends on ARCH_SUNXI || COMPILE_TEST 503 depends on COMMON_CLK && OF 504 depends on PM 505 select VIDEOBUF2_DMA_CONTIG 506 select V4L2_MEM2MEM_DEV 507 help 508 Support for the Allwinner deinterlace unit with scaling 509 capability found on some SoCs, like H3. 510 To compile this driver as a module choose m here. 511 512config VIDEO_SUN8I_ROTATE 513 tristate "Allwinner DE2 rotation driver" 514 depends on VIDEO_DEV && VIDEO_V4L2 515 depends on ARCH_SUNXI || COMPILE_TEST 516 depends on COMMON_CLK && OF 517 depends on PM 518 select VIDEOBUF2_DMA_CONTIG 519 select V4L2_MEM2MEM_DEV 520 help 521 Support for the Allwinner DE2 rotation unit. 522 To compile this driver as a module choose m here. 523 524endif # V4L_MEM2MEM_DRIVERS 525 526# TI VIDEO PORT Helper Modules 527# These will be selected by VPE and VIP 528config VIDEO_TI_VPDMA 529 tristate 530 531config VIDEO_TI_SC 532 tristate 533 534config VIDEO_TI_CSC 535 tristate 536 537menuconfig DVB_PLATFORM_DRIVERS 538 bool "DVB platform devices" 539 depends on MEDIA_DIGITAL_TV_SUPPORT 540 help 541 Say Y here to enable support for platform-specific Digital TV drivers. 542 543if DVB_PLATFORM_DRIVERS 544source "drivers/media/platform/sti/c8sectpfe/Kconfig" 545endif #DVB_PLATFORM_DRIVERS 546 547menuconfig SDR_PLATFORM_DRIVERS 548 bool "SDR platform devices" 549 depends on MEDIA_SDR_SUPPORT 550 help 551 Say Y here to enable support for platform-specific SDR Drivers. 552 553if SDR_PLATFORM_DRIVERS 554 555config VIDEO_RCAR_DRIF 556 tristate "Renesas Digital Radio Interface (DRIF)" 557 depends on VIDEO_V4L2 558 depends on ARCH_RENESAS || COMPILE_TEST 559 select VIDEOBUF2_VMALLOC 560 help 561 Say Y if you want to enable R-Car Gen3 DRIF support. DRIF is Digital 562 Radio Interface that interfaces with an RF front end chip. It is a 563 receiver of digital data which uses DMA to transfer received data to 564 a configured location for an application to use. 565 566 To compile this driver as a module, choose M here; the module 567 will be called rcar_drif. 568 569endif # SDR_PLATFORM_DRIVERS 570