xref: /openbmc/linux/drivers/media/platform/Kconfig (revision a89a501c)
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