xref: /openbmc/linux/drivers/media/Kconfig (revision ec8f24b7)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Multimedia device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
69177e51dSHans Verkuilconfig CEC_CORE
79177e51dSHans Verkuil	tristate
89177e51dSHans Verkuil
9e94c3281SHans Verkuilconfig CEC_NOTIFIER
109177e51dSHans Verkuil	bool
119177e51dSHans Verkuil
12ea5c8ef2SHans Verkuilconfig CEC_PIN
13ea5c8ef2SHans Verkuil	bool
14ea5c8ef2SHans Verkuil
15b9e1486eSSean Youngsource "drivers/media/rc/Kconfig"
16b9e1486eSSean Young
17ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT
18ab482a6cSRandy Dunlap	tristate "Multimedia support"
19e25df120SMartin Schwidefsky	depends on HAS_IOMEM
20ab482a6cSRandy Dunlap	help
21b4c184e5SMauro Carvalho Chehab	  If you want to use Webcams, Video grabber devices and/or TV devices
22ab482a6cSRandy Dunlap	  enable this option and other options below.
23b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
24991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
25ab482a6cSRandy Dunlap
26ab482a6cSRandy Dunlapif MEDIA_SUPPORT
271da177e4SLinus Torvalds
287c91f062SMauro Carvalho Chehabcomment "Multimedia core support"
297c91f062SMauro Carvalho Chehab
307c91f062SMauro Carvalho Chehab#
31b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
32b4c184e5SMauro Carvalho Chehab#
33b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
34b4c184e5SMauro Carvalho Chehab	bool "Cameras/video grabbers support"
35b60a5b8dSMauro Carvalho Chehab	help
36b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
37b4c184e5SMauro Carvalho Chehab
38b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
39b4c184e5SMauro Carvalho Chehab
40b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
41b4c184e5SMauro Carvalho Chehab	bool "Analog TV support"
42b60a5b8dSMauro Carvalho Chehab	help
43b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
44b4c184e5SMauro Carvalho Chehab
45b4c184e5SMauro Carvalho Chehab	  Say Y when you have a TV board with analog support or with a
46b4c184e5SMauro Carvalho Chehab	  hybrid analog/digital TV chipset.
47b4c184e5SMauro Carvalho Chehab
48b4c184e5SMauro Carvalho Chehab	  Note: There are several DVB cards that are based on chips that
49b4c184e5SMauro Carvalho Chehab		support both analog and digital TV. Disabling this option
50b4c184e5SMauro Carvalho Chehab		will disable support for them.
51b4c184e5SMauro Carvalho Chehab
52b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
53b4c184e5SMauro Carvalho Chehab	bool "Digital TV support"
54b60a5b8dSMauro Carvalho Chehab	help
55b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
56b4c184e5SMauro Carvalho Chehab
57b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with digital support or a board with
58b4c184e5SMauro Carvalho Chehab	  hybrid digital TV and analog TV.
59b4c184e5SMauro Carvalho Chehab
60b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
61b4c184e5SMauro Carvalho Chehab	bool "AM/FM radio receivers/transmitters support"
62b60a5b8dSMauro Carvalho Chehab	help
63b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
64b4c184e5SMauro Carvalho Chehab
65b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
66991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
67b4c184e5SMauro Carvalho Chehab
68b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
69b4c184e5SMauro Carvalho Chehab
70b4c184e5SMauro Carvalho Chehab	  Note: There are several TV cards that are based on chips that
71b4c184e5SMauro Carvalho Chehab		support radio reception. Disabling this option will
72b4c184e5SMauro Carvalho Chehab		disable support for them.
73b4c184e5SMauro Carvalho Chehab
74435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
75435ef148SAntti Palosaari	bool "Software defined radio support"
76b60a5b8dSMauro Carvalho Chehab	help
77435ef148SAntti Palosaari	  Enable software defined radio support.
78435ef148SAntti Palosaari
79435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
80435ef148SAntti Palosaari
810dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
820dbacebeSHans Verkuil	bool "HDMI CEC support"
83b60a5b8dSMauro Carvalho Chehab	help
840dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
850dbacebeSHans Verkuil	  which is an optional HDMI feature.
860dbacebeSHans Verkuil
870dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
880dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
890dbacebeSHans Verkuil
9056a263aaSHans Verkuilsource "drivers/media/cec/Kconfig"
916917a7b7SHans Verkuil
92b4c184e5SMauro Carvalho Chehab#
93cf4b9211SLaurent Pinchart# Media controller
94b4c184e5SMauro Carvalho Chehab#	Selectable only for webcam/grabbers, as other drivers don't use it
95cf4b9211SLaurent Pinchart#
96cf4b9211SLaurent Pinchart
97cf4b9211SLaurent Pinchartconfig MEDIA_CONTROLLER
9851e8cb74SKees Cook	bool "Media Controller API"
99a0246e02SMauro Carvalho Chehab	depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT
100b60a5b8dSMauro Carvalho Chehab	help
101cf4b9211SLaurent Pinchart	  Enable the media controller API used to query media devices internal
102cf4b9211SLaurent Pinchart	  topology and configure it dynamically.
103cf4b9211SLaurent Pinchart
104cf4b9211SLaurent Pinchart	  This API is mostly used by camera interfaces in embedded platforms.
105cf4b9211SLaurent Pinchart
106a0246e02SMauro Carvalho Chehabconfig MEDIA_CONTROLLER_DVB
107c3f22501SMauro Carvalho Chehab	bool "Enable Media controller for DVB (EXPERIMENTAL)"
108a4afb3edSMauro Carvalho Chehab	depends on MEDIA_CONTROLLER && DVB_CORE
109b60a5b8dSMauro Carvalho Chehab	help
110a0246e02SMauro Carvalho Chehab	  Enable the media controller API support for DVB.
111a0246e02SMauro Carvalho Chehab
112a0246e02SMauro Carvalho Chehab	  This is currently experimental.
113a0246e02SMauro Carvalho Chehab
114078ab3eaSSakari Ailusconfig MEDIA_CONTROLLER_REQUEST_API
115078ab3eaSSakari Ailus	bool "Enable Media controller Request API (EXPERIMENTAL)"
116078ab3eaSSakari Ailus	depends on MEDIA_CONTROLLER && STAGING_MEDIA
117078ab3eaSSakari Ailus	default n
118b60a5b8dSMauro Carvalho Chehab	help
119078ab3eaSSakari Ailus	  DO NOT ENABLE THIS OPTION UNLESS YOU KNOW WHAT YOU'RE DOING.
120078ab3eaSSakari Ailus
121078ab3eaSSakari Ailus	  This option enables the Request API for the Media controller and V4L2
122078ab3eaSSakari Ailus	  interfaces. It is currently needed by a few stateless codec drivers.
123078ab3eaSSakari Ailus
124078ab3eaSSakari Ailus	  There is currently no intention to provide API or ABI stability for
125078ab3eaSSakari Ailus	  this new API as of yet.
126078ab3eaSSakari Ailus
127cf4b9211SLaurent Pinchart#
128b4c184e5SMauro Carvalho Chehab# Video4Linux support
129b4c184e5SMauro Carvalho Chehab#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
1307c91f062SMauro Carvalho Chehab#
1317c91f062SMauro Carvalho Chehab
1321da177e4SLinus Torvaldsconfig VIDEO_DEV
133b4c184e5SMauro Carvalho Chehab	tristate
134b4c184e5SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
135435ef148SAntti Palosaari	depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT
136b4c184e5SMauro Carvalho Chehab	default y
1371da177e4SLinus Torvalds
1387cd5a16bSStanimir Varbanovconfig VIDEO_V4L2_SUBDEV_API
13951e8cb74SKees Cook	bool "V4L2 sub-device userspace API"
14051e8cb74SKees Cook	depends on VIDEO_DEV && MEDIA_CONTROLLER
141b60a5b8dSMauro Carvalho Chehab	help
1427cd5a16bSStanimir Varbanov	  Enables the V4L2 sub-device pad-level userspace API used to configure
1437cd5a16bSStanimir Varbanov	  video format, size and frame rate between hardware blocks.
1447cd5a16bSStanimir Varbanov
1457cd5a16bSStanimir Varbanov	  This API is mostly used by camera interfaces in embedded platforms.
1467cd5a16bSStanimir Varbanov
147f0af8fa4SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
148f0af8fa4SMauro Carvalho Chehab
1497c91f062SMauro Carvalho Chehab#
1507c91f062SMauro Carvalho Chehab# DVB Core
151b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1527c91f062SMauro Carvalho Chehab#
153cd41e28eSMauro Carvalho Chehab
1547c91f062SMauro Carvalho Chehabconfig DVB_CORE
155b4c184e5SMauro Carvalho Chehab	tristate
156b4c184e5SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
157b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
15888327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
159b4c184e5SMauro Carvalho Chehab	default y
1607c91f062SMauro Carvalho Chehab	select CRC32
1617c91f062SMauro Carvalho Chehab
1624021053eSMauro Carvalho Chehabconfig DVB_MMAP
1634021053eSMauro Carvalho Chehab	bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
1644021053eSMauro Carvalho Chehab	depends on DVB_CORE
16585e60bd7SArnd Bergmann	depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
16685e60bd7SArnd Bergmann	select VIDEOBUF2_VMALLOC
1674021053eSMauro Carvalho Chehab	default n
1684021053eSMauro Carvalho Chehab	help
1692c27476eSMichael Ira Krufky	  This option enables DVB experimental memory-mapped API, which
1704021053eSMauro Carvalho Chehab	  reduces the number of context switches to read DVB buffers, as
1714021053eSMauro Carvalho Chehab	  the buffers can use mmap() syscalls.
1724021053eSMauro Carvalho Chehab
1734021053eSMauro Carvalho Chehab	  Support for it is experimental. Use with care. If unsure,
1744021053eSMauro Carvalho Chehab	  say N.
1754021053eSMauro Carvalho Chehab
176a34ff6cdSHans Petter Selaskyconfig DVB_NET
177a34ff6cdSHans Petter Selasky	bool "DVB Network Support"
178a34ff6cdSHans Petter Selasky	default (NET && INET)
1798c528d5eSGuennadi Liakhovetski	depends on NET && INET && DVB_CORE
180a34ff6cdSHans Petter Selasky	help
1819a78efc8SJiri Slaby	  This option enables DVB Network Support which is a part of the DVB
1829a78efc8SJiri Slaby	  standard. It is used, for example, by automatic firmware updates used
1839a78efc8SJiri Slaby	  on Set-Top-Boxes. It can also be used to access the Internet via the
1849a78efc8SJiri Slaby	  DVB card, if the network provider supports it.
185a34ff6cdSHans Petter Selasky
1869a78efc8SJiri Slaby	  You may want to disable the network support on embedded devices. If
1879a78efc8SJiri Slaby	  unsure say Y.
188a34ff6cdSHans Petter Selasky
1895d92bbe6SMauro Carvalho Chehab# This Kconfig option is used by both PCI and USB drivers
1905d92bbe6SMauro Carvalho Chehabconfig TTPCI_EEPROM
1915d92bbe6SMauro Carvalho Chehab	tristate
1925d92bbe6SMauro Carvalho Chehab	depends on I2C
1935d92bbe6SMauro Carvalho Chehab	default n
1945d92bbe6SMauro Carvalho Chehab
195f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
196f0af8fa4SMauro Carvalho Chehab
197c455f5c8SMauro Carvalho Chehabcomment "Media drivers"
1987c91f062SMauro Carvalho Chehab
1997c91f062SMauro Carvalho Chehab#
200cb7a01acSMauro Carvalho Chehab# V4L platform/mem2mem drivers
201cb7a01acSMauro Carvalho Chehab#
2021da177e4SLinus Torvalds
203786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
2043c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
2053c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
2060013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
2073c8c09b5SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
2081da177e4SLinus Torvalds
209616300bdSMauro Carvalho Chehabcomment "Supported FireWire (IEEE 1394) Adapters"
210616300bdSMauro Carvalho Chehab	depends on DVB_CORE && FIREWIRE
211616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
212616300bdSMauro Carvalho Chehab
2133c8c09b5SMauro Carvalho Chehab# Common driver options
2143785bc17SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
2153785bc17SMauro Carvalho Chehab
2168283a092SHans Verkuilcomment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
2175344fe6eSHans Verkuil
2183c8c09b5SMauro Carvalho Chehab#
2198283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2203c8c09b5SMauro Carvalho Chehab#
2213c8c09b5SMauro Carvalho Chehab
222fccea74fSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
2238283a092SHans Verkuil	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
224435ef148SAntti Palosaari	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
225347f7a37SMauro Carvalho Chehab	depends on HAS_IOMEM
226347f7a37SMauro Carvalho Chehab	select I2C
227347f7a37SMauro Carvalho Chehab	select I2C_MUX
228fccea74fSMauro Carvalho Chehab	default y
229fccea74fSMauro Carvalho Chehab	help
2305344fe6eSHans Verkuil	  By default, a media driver auto-selects all possible ancillary
2315344fe6eSHans Verkuil	  devices such as tuners, sensors, video encoders/decoders and
2325344fe6eSHans Verkuil	  frontends, that are used by any of the supported devices.
233fccea74fSMauro Carvalho Chehab
234fccea74fSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
2352c76a12aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
2362c76a12aSMauro Carvalho Chehab	  like on embedded systems.
237fccea74fSMauro Carvalho Chehab
2382c76a12aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
2392c76a12aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
2402c76a12aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
2415344fe6eSHans Verkuil	  the needed demodulators).
242fccea74fSMauro Carvalho Chehab
243fccea74fSMauro Carvalho Chehab	  If unsure say Y.
244bb69ee27SMauro Carvalho Chehab
245bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH
246bb69ee27SMauro Carvalho Chehab	bool
247bb69ee27SMauro Carvalho Chehab	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
248bb69ee27SMauro Carvalho Chehab	depends on MODULES
249bb69ee27SMauro Carvalho Chehab	default MODULES
250fccea74fSMauro Carvalho Chehab
2513c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig"
2528283a092SHans Verkuilsource "drivers/media/spi/Kconfig"
253fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig"
2543c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig"
2553c8c09b5SMauro Carvalho Chehab
256ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
257