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