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