xref: /openbmc/linux/drivers/media/Kconfig (revision 1b80d36a)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Multimedia device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
6b9e1486eSSean Youngsource "drivers/media/rc/Kconfig"
7b9e1486eSSean Young
8ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT
9ab482a6cSRandy Dunlap	tristate "Multimedia support"
10e25df120SMartin Schwidefsky	depends on HAS_IOMEM
11ab482a6cSRandy Dunlap	help
12dee1877dSMauro Carvalho Chehab	  If you want to use media devices, including Webcams, Video grabber
13dee1877dSMauro Carvalho Chehab	  devices and/or TV devices, V4L2 codecs, etc, enable this option
14dee1877dSMauro Carvalho Chehab	  and other options below.
15dee1877dSMauro Carvalho Chehab
16b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
17991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
18ab482a6cSRandy Dunlap
19c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT
20c6774ee0SMauro Carvalho Chehab
21c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER
22ce971d95SMauro Carvalho Chehab	bool "Filter media drivers"
23c39d5704SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
24c6774ee0SMauro Carvalho Chehab	help
25c6774ee0SMauro Carvalho Chehab	   Configuring the media subsystem can be complex, as there are
26c6774ee0SMauro Carvalho Chehab	   hundreds of drivers and other config options.
27c6774ee0SMauro Carvalho Chehab
28c6774ee0SMauro Carvalho Chehab	   This menu offers option that will help the Kernel's config
29c6774ee0SMauro Carvalho Chehab	   system to hide drivers that are out of the scope of the
30c6774ee0SMauro Carvalho Chehab	   user needs, and disabling core support for unused APIs.
31c6774ee0SMauro Carvalho Chehab
32c6774ee0SMauro Carvalho Chehab	   If not selected, all non-optional media core functionality
33c6774ee0SMauro Carvalho Chehab	   needed to support media drivers will be enabled. Also, all
34c6774ee0SMauro Carvalho Chehab	   media device drivers should be shown.
35c6774ee0SMauro Carvalho Chehab
361b80d36aSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
371b80d36aSMauro Carvalho Chehab	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
381b80d36aSMauro Carvalho Chehab	depends on HAS_IOMEM
391b80d36aSMauro Carvalho Chehab	select I2C
401b80d36aSMauro Carvalho Chehab	select I2C_MUX
411b80d36aSMauro Carvalho Chehab	default y if MEDIA_SUPPORT_FILTER
421b80d36aSMauro Carvalho Chehab	help
431b80d36aSMauro Carvalho Chehab	  By default, a media driver auto-selects all possible ancillary
441b80d36aSMauro Carvalho Chehab	  devices such as tuners, sensors, video encoders/decoders and
451b80d36aSMauro Carvalho Chehab	  frontends, that are used by any of the supported devices.
461b80d36aSMauro Carvalho Chehab
471b80d36aSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
481b80d36aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
491b80d36aSMauro Carvalho Chehab	  like on embedded systems.
501b80d36aSMauro Carvalho Chehab
511b80d36aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
521b80d36aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
531b80d36aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
541b80d36aSMauro Carvalho Chehab	  the needed demodulators).
551b80d36aSMauro Carvalho Chehab
561b80d36aSMauro Carvalho Chehab	  If unsure say Y.
571b80d36aSMauro Carvalho Chehab
58c6774ee0SMauro Carvalho Chehabmenu "Media device types"
59c6774ee0SMauro Carvalho Chehab	visible if MEDIA_SUPPORT_FILTER
607c91f062SMauro Carvalho Chehab
617c91f062SMauro Carvalho Chehab#
62b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
63b4c184e5SMauro Carvalho Chehab#
64b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
65c39d5704SMauro Carvalho Chehab	bool "Cameras and video grabbers"
66c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
67b60a5b8dSMauro Carvalho Chehab	help
68b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
69b4c184e5SMauro Carvalho Chehab
70b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
71b4c184e5SMauro Carvalho Chehab
72b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
73c39d5704SMauro Carvalho Chehab	bool "Analog TV"
74c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
75b60a5b8dSMauro Carvalho Chehab	help
76b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
77b4c184e5SMauro Carvalho Chehab
78a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with analog TV support.
79b4c184e5SMauro Carvalho Chehab
80b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
81c39d5704SMauro Carvalho Chehab	bool "Digital TV"
82c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
83b60a5b8dSMauro Carvalho Chehab	help
84b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
85b4c184e5SMauro Carvalho Chehab
86a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with digital TV support.
87b4c184e5SMauro Carvalho Chehab
88b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
89c39d5704SMauro Carvalho Chehab	bool "AM/FM radio receivers/transmitters"
90c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
91b60a5b8dSMauro Carvalho Chehab	help
92b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
93b4c184e5SMauro Carvalho Chehab
94b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
95991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
96b4c184e5SMauro Carvalho Chehab
97b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
98b4c184e5SMauro Carvalho Chehab
99435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
100c39d5704SMauro Carvalho Chehab	bool "Software defined radio"
101c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
102b60a5b8dSMauro Carvalho Chehab	help
103435ef148SAntti Palosaari	  Enable software defined radio support.
104435ef148SAntti Palosaari
105435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
106435ef148SAntti Palosaari
1070dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
108c39d5704SMauro Carvalho Chehab	bool "HDMI CEC"
109c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
110b60a5b8dSMauro Carvalho Chehab	help
1110dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
1120dbacebeSHans Verkuil	  which is an optional HDMI feature.
1130dbacebeSHans Verkuil
1140dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
1150dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
1160dbacebeSHans Verkuil
11706b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
118c39d5704SMauro Carvalho Chehab	bool "Platform-specific devices"
119c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
12006b93644SMauro Carvalho Chehab	help
12106b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
12206b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
12306b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
12406b93644SMauro Carvalho Chehab
12506b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
12606b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
12706b93644SMauro Carvalho Chehab
12806b93644SMauro Carvalho Chehab	  Say Y when you want to be able so see such devices.
12906b93644SMauro Carvalho Chehab
1304b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
131c39d5704SMauro Carvalho Chehab	bool "Test drivers"
132c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
1334b32216aSMauro Carvalho Chehab	help
1344b32216aSMauro Carvalho Chehab	  Those drivers should not be used on production Kernels, but
1354b32216aSMauro Carvalho Chehab	  can be useful on debug ones. It enables several dummy drivers
1364b32216aSMauro Carvalho Chehab	  that simulate a real hardware. Very useful to test userspace
1374b32216aSMauro Carvalho Chehab	  applications and to validate if the subsystem core is doesn't
1384b32216aSMauro Carvalho Chehab	  have regressions.
1394b32216aSMauro Carvalho Chehab
1404b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1414b32216aSMauro Carvalho Chehab
1424b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
143c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
144c6774ee0SMauro Carvalho Chehabendmenu # media device types
1454b32216aSMauro Carvalho Chehab
146078ab3eaSSakari Ailus
1475e9e60f4SMauro Carvalho Chehabmenu "Media core support"
1485e9e60f4SMauro Carvalho Chehab	visible if !MEDIA_SUPPORT_FILTER
1497c91f062SMauro Carvalho Chehab
150a3b91d8bSMauro Carvalho Chehabcomment "Video4Linux core enabled to support hybrid TV devices"
151a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
152a3b91d8bSMauro Carvalho Chehab
1531da177e4SLinus Torvaldsconfig VIDEO_DEV
154b4c184e5SMauro Carvalho Chehab	tristate
155a3b91d8bSMauro Carvalho Chehab	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
1566268b351SMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT || MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
1575e9e60f4SMauro Carvalho Chehab	help
1585e9e60f4SMauro Carvalho Chehab	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
1595e9e60f4SMauro Carvalho Chehab	  radio devices and by some input devices.
1601da177e4SLinus Torvalds
1618fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER
1628fc42fffSMauro Carvalho Chehab	bool "Media Controller API"
1638fc42fffSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
1648fc42fffSMauro Carvalho Chehab	help
1658fc42fffSMauro Carvalho Chehab	  Enable the media controller API used to query media devices internal
1668fc42fffSMauro Carvalho Chehab	  topology and configure it dynamically.
1678fc42fffSMauro Carvalho Chehab
1688fc42fffSMauro Carvalho Chehab	  This API is mostly used by camera interfaces in embedded platforms.
1698fc42fffSMauro Carvalho Chehab
1707c91f062SMauro Carvalho Chehab#
1717c91f062SMauro Carvalho Chehab# DVB Core
172b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1737c91f062SMauro Carvalho Chehab#
174cd41e28eSMauro Carvalho Chehab
175a3b91d8bSMauro Carvalho Chehabcomment "Digital TV core enabled to support hybrid TV devices"
176a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
177a3b91d8bSMauro Carvalho Chehab
1787c91f062SMauro Carvalho Chehabconfig DVB_CORE
179b4c184e5SMauro Carvalho Chehab	tristate
180a3b91d8bSMauro Carvalho Chehab	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
181b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
18288327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
1837c91f062SMauro Carvalho Chehab	select CRC32
1844021053eSMauro Carvalho Chehab	help
1855e9e60f4SMauro Carvalho Chehab	  Enables the DVB API, used by Digital TV devices. Supports several
1865e9e60f4SMauro Carvalho Chehab	  standards, including DVB, ATSC, ISDB and CMDB.
1874021053eSMauro Carvalho Chehab
1885e9e60f4SMauro Carvalho Chehabendmenu # Media core support
1894021053eSMauro Carvalho Chehab
1905e9e60f4SMauro Carvalho Chehab#
1915e9e60f4SMauro Carvalho Chehab# Extra per-media API core functionality
192a34ff6cdSHans Petter Selasky
1935e9e60f4SMauro Carvalho Chehabmenu "Media core additional options"
1947d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
1957d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
196f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
1977d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
1985e9e60f4SMauro Carvalho Chehabendmenu
199f0af8fa4SMauro Carvalho Chehab
2005e9e60f4SMauro Carvalho Chehabmenu "Media drivers"
2017c91f062SMauro Carvalho Chehab
202ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'"
203ce971d95SMauro Carvalho Chehab	depends on MEDIA_SUPPORT_FILTER
204ce971d95SMauro Carvalho Chehab
205786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
2063c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
20706b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
20806b93644SMauro Carvalho Chehab
2097d5bc693SMauro Carvalho Chehab# Common driver options
2107d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
2117d5bc693SMauro Carvalho Chehab
21206b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
2133c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
2144b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig"
2150013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
21606b93644SMauro Carvalho Chehabendif
2171da177e4SLinus Torvalds
218616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
219616300bdSMauro Carvalho Chehab
2205e9e60f4SMauro Carvalho Chehabendmenu
2215e9e60f4SMauro Carvalho Chehab
2223c8c09b5SMauro Carvalho Chehab#
2238283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2243c8c09b5SMauro Carvalho Chehab#
2253c8c09b5SMauro Carvalho Chehab
2264fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2274fa4ef39SEzequiel Garcia	bool
2284fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2294fa4ef39SEzequiel Garcia	default y
2304fa4ef39SEzequiel Garcia
2311b80d36aSMauro Carvalho Chehabmenu "Media ancillary drivers"
2321b80d36aSMauro Carvalho Chehab	visible if !MEDIA_HIDE_ANCILLARY_SUBDRV
2331b80d36aSMauro Carvalho Chehab
234bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH
235bb69ee27SMauro Carvalho Chehab	bool
236bb69ee27SMauro Carvalho Chehab	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
237bb69ee27SMauro Carvalho Chehab	depends on MODULES
238bb69ee27SMauro Carvalho Chehab	default MODULES
239fccea74fSMauro Carvalho Chehab
2403c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig"
2418283a092SHans Verkuilsource "drivers/media/spi/Kconfig"
242fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig"
2433c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig"
2443c8c09b5SMauro Carvalho Chehab
2455e9e60f4SMauro Carvalho Chehabendmenu
2465e9e60f4SMauro Carvalho Chehab
247ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
248