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 help 260 Mediatek video codec driver provides HW capability to 261 encode and decode in a range of video formats 262 This driver rely on VPU driver to communicate with VPU. 263 264 To compile this driver as a module, choose M here: the 265 module will be called mtk-vcodec 266 267config VIDEO_MEM2MEM_DEINTERLACE 268 tristate "Deinterlace support" 269 depends on VIDEO_DEV && VIDEO_V4L2 270 depends on HAS_DMA 271 select VIDEOBUF2_DMA_CONTIG 272 select V4L2_MEM2MEM_DEV 273 help 274 Generic deinterlacing V4L2 driver. 275 276config VIDEO_SAMSUNG_S5P_G2D 277 tristate "Samsung S5P and EXYNOS4 G2D 2d graphics accelerator driver" 278 depends on VIDEO_DEV && VIDEO_V4L2 279 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 280 select VIDEOBUF2_DMA_CONTIG 281 select V4L2_MEM2MEM_DEV 282 help 283 This is a v4l2 driver for Samsung S5P and EXYNOS4 G2D 284 2d graphics accelerator. 285 286config VIDEO_SAMSUNG_S5P_JPEG 287 tristate "Samsung S5P/Exynos3250/Exynos4 JPEG codec driver" 288 depends on VIDEO_DEV && VIDEO_V4L2 289 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 290 select VIDEOBUF2_DMA_CONTIG 291 select V4L2_MEM2MEM_DEV 292 help 293 This is a v4l2 driver for Samsung S5P, EXYNOS3250 294 and EXYNOS4 JPEG codec 295 296config VIDEO_SAMSUNG_S5P_MFC 297 tristate "Samsung S5P MFC Video Codec" 298 depends on VIDEO_DEV && VIDEO_V4L2 299 depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST 300 select VIDEOBUF2_DMA_CONTIG 301 help 302 MFC 5.1 and 6.x driver for V4L2 303 304config VIDEO_MX2_EMMAPRP 305 tristate "MX2 eMMa-PrP support" 306 depends on VIDEO_DEV && VIDEO_V4L2 307 depends on SOC_IMX27 || COMPILE_TEST 308 select VIDEOBUF2_DMA_CONTIG 309 select V4L2_MEM2MEM_DEV 310 help 311 MX2X chips have a PrP that can be used to process buffers from 312 memory to memory. Operations include resizing and format 313 conversion. 314 315config VIDEO_SAMSUNG_EXYNOS_GSC 316 tristate "Samsung Exynos G-Scaler driver" 317 depends on VIDEO_DEV && VIDEO_V4L2 318 depends on ARCH_EXYNOS || COMPILE_TEST 319 select VIDEOBUF2_DMA_CONTIG 320 select V4L2_MEM2MEM_DEV 321 help 322 This is a v4l2 driver for Samsung EXYNOS5 SoC G-Scaler. 323 324config VIDEO_STI_BDISP 325 tristate "STMicroelectronics BDISP 2D blitter driver" 326 depends on VIDEO_DEV && VIDEO_V4L2 327 depends on ARCH_STI || COMPILE_TEST 328 select VIDEOBUF2_DMA_CONTIG 329 select V4L2_MEM2MEM_DEV 330 help 331 This v4l2 mem2mem driver is a 2D blitter for STMicroelectronics SoC. 332 333config VIDEO_STI_HVA 334 tristate "STMicroelectronics HVA multi-format video encoder V4L2 driver" 335 depends on VIDEO_DEV && VIDEO_V4L2 336 depends on ARCH_STI || COMPILE_TEST 337 select VIDEOBUF2_DMA_CONTIG 338 select V4L2_MEM2MEM_DEV 339 help 340 This V4L2 driver enables HVA (Hardware Video Accelerator) multi-format 341 video encoder of STMicroelectronics SoC, allowing hardware encoding of 342 raw uncompressed formats in various compressed video bitstreams format. 343 344 To compile this driver as a module, choose M here: 345 the module will be called st-hva. 346 347config VIDEO_STI_HVA_DEBUGFS 348 bool "Export STMicroelectronics HVA internals in debugfs" 349 depends on VIDEO_STI_HVA 350 depends on DEBUG_FS 351 help 352 Select this to see information about the internal state and the last 353 operation of STMicroelectronics HVA multi-format video encoder in 354 debugfs. 355 356 Choose N unless you know you need this. 357 358config VIDEO_STI_DELTA 359 tristate "STMicroelectronics DELTA multi-format video decoder V4L2 driver" 360 depends on VIDEO_DEV && VIDEO_V4L2 361 depends on ARCH_STI || COMPILE_TEST 362 help 363 This V4L2 driver enables DELTA multi-format video decoder 364 of STMicroelectronics STiH4xx SoC series allowing hardware 365 decoding of various compressed video bitstream format in 366 raw uncompressed format. 367 368 Use this option to see the decoders available for such 369 hardware. 370 371 Please notice that the driver will only be built if 372 at least one of the DELTA decoder below is selected. 373 374if VIDEO_STI_DELTA 375 376config VIDEO_STI_DELTA_MJPEG 377 bool "STMicroelectronics DELTA MJPEG support" 378 default y 379 help 380 Enables DELTA MJPEG hardware support. 381 382 To compile this driver as a module, choose M here: 383 the module will be called st-delta. 384 385config VIDEO_STI_DELTA_DRIVER 386 tristate 387 depends on VIDEO_STI_DELTA 388 depends on VIDEO_STI_DELTA_MJPEG 389 default VIDEO_STI_DELTA_MJPEG 390 select VIDEOBUF2_DMA_CONTIG 391 select V4L2_MEM2MEM_DEV 392 select RPMSG 393 394endif # VIDEO_STI_DELTA 395 396config VIDEO_RENESAS_FDP1 397 tristate "Renesas Fine Display Processor" 398 depends on VIDEO_DEV && VIDEO_V4L2 399 depends on ARCH_RENESAS || COMPILE_TEST 400 depends on (!ARM64 && !VIDEO_RENESAS_FCP) || VIDEO_RENESAS_FCP 401 select VIDEOBUF2_DMA_CONTIG 402 select V4L2_MEM2MEM_DEV 403 help 404 This is a V4L2 driver for the Renesas Fine Display Processor 405 providing colour space conversion, and de-interlacing features. 406 407 To compile this driver as a module, choose M here: the module 408 will be called rcar_fdp1. 409 410config VIDEO_RENESAS_JPU 411 tristate "Renesas JPEG Processing Unit" 412 depends on VIDEO_DEV && VIDEO_V4L2 413 depends on ARCH_RENESAS || COMPILE_TEST 414 select VIDEOBUF2_DMA_CONTIG 415 select V4L2_MEM2MEM_DEV 416 help 417 This is a V4L2 driver for the Renesas JPEG Processing Unit. 418 419 To compile this driver as a module, choose M here: the module 420 will be called rcar_jpu. 421 422config VIDEO_RENESAS_FCP 423 tristate "Renesas Frame Compression Processor" 424 depends on ARCH_RENESAS || COMPILE_TEST 425 depends on OF 426 help 427 This is a driver for the Renesas Frame Compression Processor (FCP). 428 The FCP is a companion module of video processing modules in the 429 Renesas R-Car Gen3 SoCs. It handles memory access for the codec, 430 VSP and FDP modules. 431 432 To compile this driver as a module, choose M here: the module 433 will be called rcar-fcp. 434 435config VIDEO_RENESAS_VSP1 436 tristate "Renesas VSP1 Video Processing Engine" 437 depends on VIDEO_V4L2 438 depends on ARCH_RENESAS || COMPILE_TEST 439 depends on (!ARM64 && !VIDEO_RENESAS_FCP) || VIDEO_RENESAS_FCP 440 select MEDIA_CONTROLLER 441 select VIDEO_V4L2_SUBDEV_API 442 select VIDEOBUF2_DMA_CONTIG 443 select VIDEOBUF2_VMALLOC 444 help 445 This is a V4L2 driver for the Renesas VSP1 video processing engine. 446 447 To compile this driver as a module, choose M here: the module 448 will be called vsp1. 449 450config VIDEO_ROCKCHIP_RGA 451 tristate "Rockchip Raster 2d Graphic Acceleration Unit" 452 depends on VIDEO_DEV && VIDEO_V4L2 453 depends on ARCH_ROCKCHIP || COMPILE_TEST 454 select VIDEOBUF2_DMA_SG 455 select V4L2_MEM2MEM_DEV 456 help 457 This is a v4l2 driver for Rockchip SOC RGA 2d graphics accelerator. 458 Rockchip RGA is a separate 2D raster graphic acceleration unit. 459 It accelerates 2D graphics operations, such as point/line drawing, 460 image scaling, rotation, BitBLT, alpha blending and image blur/sharpness. 461 462 To compile this driver as a module choose m here. 463 464config VIDEO_TI_VPE 465 tristate "TI VPE (Video Processing Engine) driver" 466 depends on VIDEO_DEV && VIDEO_V4L2 467 depends on SOC_DRA7XX || COMPILE_TEST 468 select VIDEOBUF2_DMA_CONTIG 469 select V4L2_MEM2MEM_DEV 470 select VIDEO_TI_VPDMA 471 select VIDEO_TI_SC 472 select VIDEO_TI_CSC 473 help 474 Support for the TI VPE(Video Processing Engine) block 475 found on DRA7XX SoC. 476 477config VIDEO_TI_VPE_DEBUG 478 bool "VPE debug messages" 479 depends on VIDEO_TI_VPE 480 help 481 Enable debug messages on VPE driver. 482 483config VIDEO_QCOM_VENUS 484 tristate "Qualcomm Venus V4L2 encoder/decoder driver" 485 depends on VIDEO_DEV && VIDEO_V4L2 486 depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST 487 depends on INTERCONNECT || !INTERCONNECT 488 select QCOM_MDT_LOADER if ARCH_QCOM 489 select QCOM_SCM if ARCH_QCOM 490 select VIDEOBUF2_DMA_SG 491 select V4L2_MEM2MEM_DEV 492 help 493 This is a V4L2 driver for Qualcomm Venus video accelerator 494 hardware. It accelerates encoding and decoding operations 495 on various Qualcomm SoCs. 496 To compile this driver as a module choose m here. 497 498config VIDEO_SUN8I_DEINTERLACE 499 tristate "Allwinner Deinterlace driver" 500 depends on VIDEO_DEV && VIDEO_V4L2 501 depends on ARCH_SUNXI || COMPILE_TEST 502 depends on COMMON_CLK && OF 503 depends on PM 504 select VIDEOBUF2_DMA_CONTIG 505 select V4L2_MEM2MEM_DEV 506 help 507 Support for the Allwinner deinterlace unit with scaling 508 capability found on some SoCs, like H3. 509 To compile this driver as a module choose m here. 510 511config VIDEO_SUN8I_ROTATE 512 tristate "Allwinner DE2 rotation driver" 513 depends on VIDEO_DEV && VIDEO_V4L2 514 depends on ARCH_SUNXI || COMPILE_TEST 515 depends on COMMON_CLK && OF 516 depends on PM 517 select VIDEOBUF2_DMA_CONTIG 518 select V4L2_MEM2MEM_DEV 519 help 520 Support for the Allwinner DE2 rotation unit. 521 To compile this driver as a module choose m here. 522 523endif # V4L_MEM2MEM_DRIVERS 524 525# TI VIDEO PORT Helper Modules 526# These will be selected by VPE and VIP 527config VIDEO_TI_VPDMA 528 tristate 529 530config VIDEO_TI_SC 531 tristate 532 533config VIDEO_TI_CSC 534 tristate 535 536menuconfig DVB_PLATFORM_DRIVERS 537 bool "DVB platform devices" 538 depends on MEDIA_DIGITAL_TV_SUPPORT 539 help 540 Say Y here to enable support for platform-specific Digital TV drivers. 541 542if DVB_PLATFORM_DRIVERS 543source "drivers/media/platform/sti/c8sectpfe/Kconfig" 544endif #DVB_PLATFORM_DRIVERS 545 546menuconfig SDR_PLATFORM_DRIVERS 547 bool "SDR platform devices" 548 depends on MEDIA_SDR_SUPPORT 549 help 550 Say Y here to enable support for platform-specific SDR Drivers. 551 552if SDR_PLATFORM_DRIVERS 553 554config VIDEO_RCAR_DRIF 555 tristate "Renesas Digital Radio Interface (DRIF)" 556 depends on VIDEO_V4L2 557 depends on ARCH_RENESAS || COMPILE_TEST 558 select VIDEOBUF2_VMALLOC 559 help 560 Say Y if you want to enable R-Car Gen3 DRIF support. DRIF is Digital 561 Radio Interface that interfaces with an RF front end chip. It is a 562 receiver of digital data which uses DMA to transfer received data to 563 a configured location for an application to use. 564 565 To compile this driver as a module, choose M here; the module 566 will be called rcar_drif. 567 568endif # SDR_PLATFORM_DRIVERS 569