xref: /openbmc/linux/drivers/media/Kconfig (revision 5e9e60f4)
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
36c6774ee0SMauro Carvalho Chehabmenu "Media device types"
37c6774ee0SMauro Carvalho Chehab	visible if MEDIA_SUPPORT_FILTER
387c91f062SMauro Carvalho Chehab
397c91f062SMauro Carvalho Chehab#
40b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
41b4c184e5SMauro Carvalho Chehab#
42b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
43c39d5704SMauro Carvalho Chehab	bool "Cameras and video grabbers"
44c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
45b60a5b8dSMauro Carvalho Chehab	help
46b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
47b4c184e5SMauro Carvalho Chehab
48b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
49b4c184e5SMauro Carvalho Chehab
50b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
51c39d5704SMauro Carvalho Chehab	bool "Analog TV"
52c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
53b60a5b8dSMauro Carvalho Chehab	help
54b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
55b4c184e5SMauro Carvalho Chehab
56a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with analog TV support.
57b4c184e5SMauro Carvalho Chehab
58b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
59c39d5704SMauro Carvalho Chehab	bool "Digital TV"
60c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
61b60a5b8dSMauro Carvalho Chehab	help
62b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
63b4c184e5SMauro Carvalho Chehab
64a3b91d8bSMauro Carvalho Chehab	  Say Y when you have a board with digital TV support.
65b4c184e5SMauro Carvalho Chehab
66b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
67c39d5704SMauro Carvalho Chehab	bool "AM/FM radio receivers/transmitters"
68c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
69b60a5b8dSMauro Carvalho Chehab	help
70b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
71b4c184e5SMauro Carvalho Chehab
72b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
73991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
74b4c184e5SMauro Carvalho Chehab
75b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
76b4c184e5SMauro Carvalho Chehab
77435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
78c39d5704SMauro Carvalho Chehab	bool "Software defined radio"
79c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
80b60a5b8dSMauro Carvalho Chehab	help
81435ef148SAntti Palosaari	  Enable software defined radio support.
82435ef148SAntti Palosaari
83435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
84435ef148SAntti Palosaari
850dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
86c39d5704SMauro Carvalho Chehab	bool "HDMI CEC"
87c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
88b60a5b8dSMauro Carvalho Chehab	help
890dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
900dbacebeSHans Verkuil	  which is an optional HDMI feature.
910dbacebeSHans Verkuil
920dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
930dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
940dbacebeSHans Verkuil
9506b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
96c39d5704SMauro Carvalho Chehab	bool "Platform-specific devices"
97c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
9806b93644SMauro Carvalho Chehab	help
9906b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
10006b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
10106b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
10206b93644SMauro Carvalho Chehab
10306b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
10406b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
10506b93644SMauro Carvalho Chehab
10606b93644SMauro Carvalho Chehab	  Say Y when you want to be able so see such devices.
10706b93644SMauro Carvalho Chehab
1084b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
109c39d5704SMauro Carvalho Chehab	bool "Test drivers"
110c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
1114b32216aSMauro Carvalho Chehab	help
1124b32216aSMauro Carvalho Chehab	  Those drivers should not be used on production Kernels, but
1134b32216aSMauro Carvalho Chehab	  can be useful on debug ones. It enables several dummy drivers
1144b32216aSMauro Carvalho Chehab	  that simulate a real hardware. Very useful to test userspace
1154b32216aSMauro Carvalho Chehab	  applications and to validate if the subsystem core is doesn't
1164b32216aSMauro Carvalho Chehab	  have regressions.
1174b32216aSMauro Carvalho Chehab
1184b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1194b32216aSMauro Carvalho Chehab
1204b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
121c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
122c6774ee0SMauro Carvalho Chehabendmenu # media device types
1234b32216aSMauro Carvalho Chehab
124078ab3eaSSakari Ailus
1255e9e60f4SMauro Carvalho Chehabmenu "Media core support"
1265e9e60f4SMauro Carvalho Chehab	visible if !MEDIA_SUPPORT_FILTER
1277c91f062SMauro Carvalho Chehab
128a3b91d8bSMauro Carvalho Chehabcomment "Video4Linux core enabled to support hybrid TV devices"
129a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
130a3b91d8bSMauro Carvalho Chehab
1311da177e4SLinus Torvaldsconfig VIDEO_DEV
132b4c184e5SMauro Carvalho Chehab	tristate
133a3b91d8bSMauro Carvalho Chehab	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
1346268b351SMauro 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
1355e9e60f4SMauro Carvalho Chehab	help
1365e9e60f4SMauro Carvalho Chehab	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
1375e9e60f4SMauro Carvalho Chehab	  radio devices and by some input devices.
1381da177e4SLinus Torvalds
1398fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER
1408fc42fffSMauro Carvalho Chehab	bool "Media Controller API"
1418fc42fffSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
1428fc42fffSMauro Carvalho Chehab	help
1438fc42fffSMauro Carvalho Chehab	  Enable the media controller API used to query media devices internal
1448fc42fffSMauro Carvalho Chehab	  topology and configure it dynamically.
1458fc42fffSMauro Carvalho Chehab
1468fc42fffSMauro Carvalho Chehab	  This API is mostly used by camera interfaces in embedded platforms.
1478fc42fffSMauro Carvalho Chehab
1487c91f062SMauro Carvalho Chehab#
1497c91f062SMauro Carvalho Chehab# DVB Core
150b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
1517c91f062SMauro Carvalho Chehab#
152cd41e28eSMauro Carvalho Chehab
153a3b91d8bSMauro Carvalho Chehabcomment "Digital TV core enabled to support hybrid TV devices"
154a3b91d8bSMauro Carvalho Chehab	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
155a3b91d8bSMauro Carvalho Chehab
1567c91f062SMauro Carvalho Chehabconfig DVB_CORE
157b4c184e5SMauro Carvalho Chehab	tristate
158a3b91d8bSMauro Carvalho Chehab	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
159b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
16088327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
1617c91f062SMauro Carvalho Chehab	select CRC32
1624021053eSMauro Carvalho Chehab	help
1635e9e60f4SMauro Carvalho Chehab	  Enables the DVB API, used by Digital TV devices. Supports several
1645e9e60f4SMauro Carvalho Chehab	  standards, including DVB, ATSC, ISDB and CMDB.
1654021053eSMauro Carvalho Chehab
1665e9e60f4SMauro Carvalho Chehabendmenu # Media core support
1674021053eSMauro Carvalho Chehab
1685e9e60f4SMauro Carvalho Chehab#
1695e9e60f4SMauro Carvalho Chehab# Extra per-media API core functionality
170a34ff6cdSHans Petter Selasky
1715e9e60f4SMauro Carvalho Chehabmenu "Media core additional options"
1727d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
1737d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
174f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
1757d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
1765e9e60f4SMauro Carvalho Chehabendmenu
177f0af8fa4SMauro Carvalho Chehab
1785e9e60f4SMauro Carvalho Chehabmenu "Media drivers"
1797c91f062SMauro Carvalho Chehab
180ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'"
181ce971d95SMauro Carvalho Chehab	depends on MEDIA_SUPPORT_FILTER
182ce971d95SMauro Carvalho Chehab
183786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
1843c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
18506b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
18606b93644SMauro Carvalho Chehab
1877d5bc693SMauro Carvalho Chehab# Common driver options
1887d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
1897d5bc693SMauro Carvalho Chehab
19006b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
1913c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
1924b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig"
1930013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
19406b93644SMauro Carvalho Chehabendif
1951da177e4SLinus Torvalds
196616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
197616300bdSMauro Carvalho Chehab
1985e9e60f4SMauro Carvalho Chehabendmenu
1995e9e60f4SMauro Carvalho Chehab
2005e9e60f4SMauro Carvalho Chehabmenu "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
2015344fe6eSHans Verkuil
2023c8c09b5SMauro Carvalho Chehab#
2038283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2043c8c09b5SMauro Carvalho Chehab#
2053c8c09b5SMauro Carvalho Chehab
206fccea74fSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
2078283a092SHans Verkuil	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
208435ef148SAntti Palosaari	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
209347f7a37SMauro Carvalho Chehab	depends on HAS_IOMEM
210347f7a37SMauro Carvalho Chehab	select I2C
211347f7a37SMauro Carvalho Chehab	select I2C_MUX
21224f6f93aSEzequiel Garcia	default y if !EMBEDDED
213fccea74fSMauro Carvalho Chehab	help
2145344fe6eSHans Verkuil	  By default, a media driver auto-selects all possible ancillary
2155344fe6eSHans Verkuil	  devices such as tuners, sensors, video encoders/decoders and
2165344fe6eSHans Verkuil	  frontends, that are used by any of the supported devices.
217fccea74fSMauro Carvalho Chehab
218fccea74fSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
2192c76a12aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
2202c76a12aSMauro Carvalho Chehab	  like on embedded systems.
221fccea74fSMauro Carvalho Chehab
2222c76a12aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
2232c76a12aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
2242c76a12aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
2255344fe6eSHans Verkuil	  the needed demodulators).
226fccea74fSMauro Carvalho Chehab
227fccea74fSMauro Carvalho Chehab	  If unsure say Y.
228bb69ee27SMauro Carvalho Chehab
2294fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2304fa4ef39SEzequiel Garcia	bool
2314fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2324fa4ef39SEzequiel Garcia	default y
2334fa4ef39SEzequiel Garcia
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