xref: /openbmc/linux/drivers/media/Kconfig (revision 8e5b5d75)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# Multimedia device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
69393d050SMauro Carvalho Chehab#
79393d050SMauro Carvalho Chehab# NOTE: Those symbols can't depend on MEDIA_SUPPORT, as it would cause
89393d050SMauro Carvalho Chehab# unmatched dependencies
99393d050SMauro Carvalho Chehab#
109393d050SMauro Carvalho Chehabconfig CEC_CORE
119393d050SMauro Carvalho Chehab	tristate
129393d050SMauro Carvalho Chehab
139393d050SMauro Carvalho Chehabconfig CEC_NOTIFIER
149393d050SMauro Carvalho Chehab	bool
159393d050SMauro Carvalho Chehab
169393d050SMauro Carvalho Chehabconfig CEC_PIN
179393d050SMauro Carvalho Chehab	bool
189393d050SMauro Carvalho Chehab
19b9e1486eSSean Youngsource "drivers/media/rc/Kconfig"
20b9e1486eSSean Young
21ab482a6cSRandy Dunlapmenuconfig MEDIA_SUPPORT
22ab482a6cSRandy Dunlap	tristate "Multimedia support"
23e25df120SMartin Schwidefsky	depends on HAS_IOMEM
24ab482a6cSRandy Dunlap	help
25dee1877dSMauro Carvalho Chehab	  If you want to use media devices, including Webcams, Video grabber
26dee1877dSMauro Carvalho Chehab	  devices and/or TV devices, V4L2 codecs, etc, enable this option
27dee1877dSMauro Carvalho Chehab	  and other options below.
28dee1877dSMauro Carvalho Chehab
29b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
30991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
31ab482a6cSRandy Dunlap
32c6774ee0SMauro Carvalho Chehabif MEDIA_SUPPORT
33c6774ee0SMauro Carvalho Chehab
34c6774ee0SMauro Carvalho Chehabconfig MEDIA_SUPPORT_FILTER
35ce971d95SMauro Carvalho Chehab	bool "Filter media drivers"
36c39d5704SMauro Carvalho Chehab	depends on MEDIA_SUPPORT
37b0cd4fb2SMauro Carvalho Chehab	default y if !EMBEDDED && !EXPERT
38c6774ee0SMauro Carvalho Chehab	help
39c6774ee0SMauro Carvalho Chehab	   Configuring the media subsystem can be complex, as there are
40c6774ee0SMauro Carvalho Chehab	   hundreds of drivers and other config options.
41c6774ee0SMauro Carvalho Chehab
42c6774ee0SMauro Carvalho Chehab	   This menu offers option that will help the Kernel's config
43c6774ee0SMauro Carvalho Chehab	   system to hide drivers that are out of the scope of the
44c6774ee0SMauro Carvalho Chehab	   user needs, and disabling core support for unused APIs.
45c6774ee0SMauro Carvalho Chehab
46c6774ee0SMauro Carvalho Chehab	   If not selected, all non-optional media core functionality
47c6774ee0SMauro Carvalho Chehab	   needed to support media drivers will be enabled. Also, all
48c6774ee0SMauro Carvalho Chehab	   media device drivers should be shown.
49c6774ee0SMauro Carvalho Chehab
501b80d36aSMauro Carvalho Chehabconfig MEDIA_SUBDRV_AUTOSELECT
511b80d36aSMauro Carvalho Chehab	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
521b80d36aSMauro Carvalho Chehab	depends on HAS_IOMEM
531b80d36aSMauro Carvalho Chehab	select I2C
541b80d36aSMauro Carvalho Chehab	select I2C_MUX
551b80d36aSMauro Carvalho Chehab	default y if MEDIA_SUPPORT_FILTER
561b80d36aSMauro Carvalho Chehab	help
571b80d36aSMauro Carvalho Chehab	  By default, a media driver auto-selects all possible ancillary
581b80d36aSMauro Carvalho Chehab	  devices such as tuners, sensors, video encoders/decoders and
591b80d36aSMauro Carvalho Chehab	  frontends, that are used by any of the supported devices.
601b80d36aSMauro Carvalho Chehab
611b80d36aSMauro Carvalho Chehab	  This is generally the right thing to do, except when there
621b80d36aSMauro Carvalho Chehab	  are strict constraints with regards to the kernel size,
631b80d36aSMauro Carvalho Chehab	  like on embedded systems.
641b80d36aSMauro Carvalho Chehab
651b80d36aSMauro Carvalho Chehab	  Use this option with care, as deselecting ancillary drivers which
661b80d36aSMauro Carvalho Chehab	  are, in fact, necessary will result in the lack of the needed
671b80d36aSMauro Carvalho Chehab	  functionality for your device (it may not tune or may not have
681b80d36aSMauro Carvalho Chehab	  the needed demodulators).
691b80d36aSMauro Carvalho Chehab
701b80d36aSMauro Carvalho Chehab	  If unsure say Y.
711b80d36aSMauro Carvalho Chehab
72c6774ee0SMauro Carvalho Chehabmenu "Media device types"
737c91f062SMauro Carvalho Chehab
747c91f062SMauro Carvalho Chehab#
75b4c184e5SMauro Carvalho Chehab# Multimedia support - automatically enable V4L2 and DVB core
76b4c184e5SMauro Carvalho Chehab#
77b4c184e5SMauro Carvalho Chehabconfig MEDIA_CAMERA_SUPPORT
78b6a7d1bcSMauro Carvalho Chehab	bool
79b6a7d1bcSMauro Carvalho Chehab	prompt "Cameras and video grabbers" if MEDIA_SUPPORT_FILTER
80c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
81b60a5b8dSMauro Carvalho Chehab	help
82b4c184e5SMauro Carvalho Chehab	  Enable support for webcams and video grabbers.
83b4c184e5SMauro Carvalho Chehab
84b4c184e5SMauro Carvalho Chehab	  Say Y when you have a webcam or a video capture grabber board.
85b4c184e5SMauro Carvalho Chehab
86b4c184e5SMauro Carvalho Chehabconfig MEDIA_ANALOG_TV_SUPPORT
87b6a7d1bcSMauro Carvalho Chehab	bool
88b6a7d1bcSMauro Carvalho Chehab	prompt "Analog TV" if MEDIA_SUPPORT_FILTER
89c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
90b60a5b8dSMauro Carvalho Chehab	help
91b4c184e5SMauro Carvalho Chehab	  Enable analog TV support.
92b4c184e5SMauro Carvalho Chehab
9385f7cd3aSMauro Carvalho Chehab	  Say Y when you have a TV board with analog support or with a
9485f7cd3aSMauro Carvalho Chehab	  hybrid analog/digital TV chipset.
9585f7cd3aSMauro Carvalho Chehab
9685f7cd3aSMauro Carvalho Chehab	  Note: There are several DVB cards that are based on chips that
9785f7cd3aSMauro Carvalho Chehab		support both analog and digital TV. Disabling this option
9885f7cd3aSMauro Carvalho Chehab		will disable support for them.
99b4c184e5SMauro Carvalho Chehab
100b4c184e5SMauro Carvalho Chehabconfig MEDIA_DIGITAL_TV_SUPPORT
101b6a7d1bcSMauro Carvalho Chehab	bool
102b6a7d1bcSMauro Carvalho Chehab	prompt "Digital TV" if MEDIA_SUPPORT_FILTER
103c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
104b60a5b8dSMauro Carvalho Chehab	help
105b4c184e5SMauro Carvalho Chehab	  Enable digital TV support.
106b4c184e5SMauro Carvalho Chehab
10785f7cd3aSMauro Carvalho Chehab	  Say Y when you have a board with digital support or a board with
10885f7cd3aSMauro Carvalho Chehab	  hybrid digital TV and analog TV.
109b4c184e5SMauro Carvalho Chehab
110b4c184e5SMauro Carvalho Chehabconfig MEDIA_RADIO_SUPPORT
111b6a7d1bcSMauro Carvalho Chehab	bool
112b6a7d1bcSMauro Carvalho Chehab	prompt "AM/FM radio receivers/transmitters" if MEDIA_SUPPORT_FILTER
113c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
114b60a5b8dSMauro Carvalho Chehab	help
115b4c184e5SMauro Carvalho Chehab	  Enable AM/FM radio support.
116b4c184e5SMauro Carvalho Chehab
117b4c184e5SMauro Carvalho Chehab	  Additional info and docs are available on the web at
118991ce92fSMauro Carvalho Chehab	  <https://linuxtv.org>
119b4c184e5SMauro Carvalho Chehab
120b4c184e5SMauro Carvalho Chehab	  Say Y when you have a board with radio support.
121b4c184e5SMauro Carvalho Chehab
12285f7cd3aSMauro Carvalho Chehab	  Note: There are several TV cards that are based on chips that
12385f7cd3aSMauro Carvalho Chehab		support radio reception. Disabling this option will
12485f7cd3aSMauro Carvalho Chehab		disable support for them.
12585f7cd3aSMauro Carvalho Chehab
126435ef148SAntti Palosaariconfig MEDIA_SDR_SUPPORT
127b6a7d1bcSMauro Carvalho Chehab	bool
128b6a7d1bcSMauro Carvalho Chehab	prompt "Software defined radio" if MEDIA_SUPPORT_FILTER
129c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
130b60a5b8dSMauro Carvalho Chehab	help
131435ef148SAntti Palosaari	  Enable software defined radio support.
132435ef148SAntti Palosaari
133435ef148SAntti Palosaari	  Say Y when you have a software defined radio device.
134435ef148SAntti Palosaari
1350dbacebeSHans Verkuilconfig MEDIA_CEC_SUPPORT
136b6a7d1bcSMauro Carvalho Chehab	bool
137b6a7d1bcSMauro Carvalho Chehab	prompt "HDMI CEC support" if MEDIA_SUPPORT_FILTER
138c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
139b60a5b8dSMauro Carvalho Chehab	help
1400dbacebeSHans Verkuil	  Enable support for HDMI CEC (Consumer Electronics Control),
1410dbacebeSHans Verkuil	  which is an optional HDMI feature.
1420dbacebeSHans Verkuil
1430dbacebeSHans Verkuil	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
1440dbacebeSHans Verkuil	  adapter that supports HDMI CEC.
1450dbacebeSHans Verkuil
14606b93644SMauro Carvalho Chehabconfig MEDIA_PLATFORM_SUPPORT
147b6a7d1bcSMauro Carvalho Chehab	bool
148b6a7d1bcSMauro Carvalho Chehab	prompt "Platform-specific devices" if MEDIA_SUPPORT_FILTER
149c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
15006b93644SMauro Carvalho Chehab	help
15106b93644SMauro Carvalho Chehab	  Enable support for complex cameras, codecs, and other hardware
15206b93644SMauro Carvalho Chehab	  that are integrated at the CPU, GPU or on Image Signalling Processor
15306b93644SMauro Carvalho Chehab	  and don't use PCI, USB or Firewire buses.
15406b93644SMauro Carvalho Chehab
15506b93644SMauro Carvalho Chehab	  This is found on Embedded hardware (SoC), on V4L2 codecs and
15606b93644SMauro Carvalho Chehab	  on some GPU and newer CPU chipsets.
15706b93644SMauro Carvalho Chehab
15806b93644SMauro Carvalho Chehab	  Say Y when you want to be able so see such devices.
15906b93644SMauro Carvalho Chehab
1604b32216aSMauro Carvalho Chehabconfig MEDIA_TEST_SUPPORT
161b6a7d1bcSMauro Carvalho Chehab	bool
162b6a7d1bcSMauro Carvalho Chehab	prompt "Test drivers" if MEDIA_SUPPORT_FILTER
163c6774ee0SMauro Carvalho Chehab	default y if !MEDIA_SUPPORT_FILTER
1644b32216aSMauro Carvalho Chehab	help
1654b32216aSMauro Carvalho Chehab	  Those drivers should not be used on production Kernels, but
1664b32216aSMauro Carvalho Chehab	  can be useful on debug ones. It enables several dummy drivers
1674b32216aSMauro Carvalho Chehab	  that simulate a real hardware. Very useful to test userspace
1684b32216aSMauro Carvalho Chehab	  applications and to validate if the subsystem core is doesn't
1694b32216aSMauro Carvalho Chehab	  have regressions.
1704b32216aSMauro Carvalho Chehab
1714b32216aSMauro Carvalho Chehab	  Say Y if you want to use some virtual test driver.
1724b32216aSMauro Carvalho Chehab
1734b32216aSMauro Carvalho Chehab	  In case of doubts, say N.
174c39d5704SMauro Carvalho Chehab	  Say Y when you have a software defined radio device.
175c6774ee0SMauro Carvalho Chehabendmenu # media device types
1764b32216aSMauro Carvalho Chehab
177078ab3eaSSakari Ailus
1785e9e60f4SMauro Carvalho Chehabmenu "Media core support"
1795e9e60f4SMauro Carvalho Chehab	visible if !MEDIA_SUPPORT_FILTER
1807c91f062SMauro Carvalho Chehab
1811da177e4SLinus Torvaldsconfig VIDEO_DEV
18285f7cd3aSMauro Carvalho Chehab	tristate "Video4Linux core"
18385f7cd3aSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT
1845e9e60f4SMauro Carvalho Chehab	help
1855e9e60f4SMauro Carvalho Chehab	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
1865e9e60f4SMauro Carvalho Chehab	  radio devices and by some input devices.
1871da177e4SLinus Torvalds
1888fc42fffSMauro Carvalho Chehabconfig MEDIA_CONTROLLER
1898fc42fffSMauro Carvalho Chehab	bool "Media Controller API"
1908fc42fffSMauro Carvalho Chehab	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
1918fc42fffSMauro Carvalho Chehab	help
1928fc42fffSMauro Carvalho Chehab	  Enable the media controller API used to query media devices internal
1938fc42fffSMauro Carvalho Chehab	  topology and configure it dynamically.
1948fc42fffSMauro Carvalho Chehab
1958fc42fffSMauro Carvalho Chehab	  This API is mostly used by camera interfaces in embedded platforms.
1968fc42fffSMauro Carvalho Chehab
1977c91f062SMauro Carvalho Chehab#
1987c91f062SMauro Carvalho Chehab# DVB Core
199b4c184e5SMauro Carvalho Chehab#	Only enables if one of DTV is selected
2007c91f062SMauro Carvalho Chehab#
201cd41e28eSMauro Carvalho Chehab
2027c91f062SMauro Carvalho Chehabconfig DVB_CORE
203b4c184e5SMauro Carvalho Chehab	tristate
204b4c184e5SMauro Carvalho Chehab	depends on MEDIA_DIGITAL_TV_SUPPORT
20588327305SMauro Carvalho Chehab	depends on (I2C || I2C=n)
2068e5b5d75SMauro Carvalho Chehab	default MEDIA_DIGITAL_TV_SUPPORT
2077c91f062SMauro Carvalho Chehab	select CRC32
2084021053eSMauro Carvalho Chehab	help
2095e9e60f4SMauro Carvalho Chehab	  Enables the DVB API, used by Digital TV devices. Supports several
2105e9e60f4SMauro Carvalho Chehab	  standards, including DVB, ATSC, ISDB and CMDB.
2114021053eSMauro Carvalho Chehab
2125e9e60f4SMauro Carvalho Chehabendmenu # Media core support
2134021053eSMauro Carvalho Chehab
2145e9e60f4SMauro Carvalho Chehab#
2155e9e60f4SMauro Carvalho Chehab# Extra per-media API core functionality
216a34ff6cdSHans Petter Selasky
2170c822d97SMauro Carvalho Chehabmenu "Video4Linux options"
2180c822d97SMauro Carvalho Chehab	visible if VIDEO_DEV
2190c822d97SMauro Carvalho Chehab
2207d5bc693SMauro Carvalho Chehabsource "drivers/media/v4l2-core/Kconfig"
2210c822d97SMauro Carvalho Chehabendmenu
2220c822d97SMauro Carvalho Chehab
2230c822d97SMauro Carvalho Chehabmenu "Media controller options"
2240c822d97SMauro Carvalho Chehab	visible if MEDIA_CONTROLLER
2250c822d97SMauro Carvalho Chehab
2267d5bc693SMauro Carvalho Chehabsource "drivers/media/mc/Kconfig"
2270c822d97SMauro Carvalho Chehabendmenu
2280c822d97SMauro Carvalho Chehab
2290c822d97SMauro Carvalho Chehabmenu "Digital TV options"
2300c822d97SMauro Carvalho Chehab	visible if DVB_CORE
2310c822d97SMauro Carvalho Chehab
232f0af8fa4SMauro Carvalho Chehabsource "drivers/media/dvb-core/Kconfig"
2330c822d97SMauro Carvalho Chehabendmenu
2340c822d97SMauro Carvalho Chehab
2350c822d97SMauro Carvalho Chehabmenu "HDMI CEC options"
2360c822d97SMauro Carvalho Chehab	visible if CEC_CORE
2370c822d97SMauro Carvalho Chehab
2387d5bc693SMauro Carvalho Chehabsource "drivers/media/cec/Kconfig"
2395e9e60f4SMauro Carvalho Chehabendmenu
240f0af8fa4SMauro Carvalho Chehab
2415e9e60f4SMauro Carvalho Chehabmenu "Media drivers"
2427c91f062SMauro Carvalho Chehab
243ce971d95SMauro Carvalho Chehabcomment "Drivers filtered as selected at 'Filter media drivers'"
244ce971d95SMauro Carvalho Chehab	depends on MEDIA_SUPPORT_FILTER
245ce971d95SMauro Carvalho Chehab
246786baecfSMauro Carvalho Chehabsource "drivers/media/usb/Kconfig"
2473c8c09b5SMauro Carvalho Chehabsource "drivers/media/pci/Kconfig"
24806b93644SMauro Carvalho Chehabsource "drivers/media/radio/Kconfig"
24906b93644SMauro Carvalho Chehab
2507d5bc693SMauro Carvalho Chehab# Common driver options
2517d5bc693SMauro Carvalho Chehabsource "drivers/media/common/Kconfig"
2527d5bc693SMauro Carvalho Chehab
25306b93644SMauro Carvalho Chehabif MEDIA_PLATFORM_SUPPORT
2543c8c09b5SMauro Carvalho Chehabsource "drivers/media/platform/Kconfig"
2554b32216aSMauro Carvalho Chehabsource "drivers/media/test_drivers/Kconfig"
2560013ca8cSMauro Carvalho Chehabsource "drivers/media/mmc/Kconfig"
25706b93644SMauro Carvalho Chehabendif
2581da177e4SLinus Torvalds
259616300bdSMauro Carvalho Chehabsource "drivers/media/firewire/Kconfig"
260616300bdSMauro Carvalho Chehab
2615e9e60f4SMauro Carvalho Chehabendmenu
2625e9e60f4SMauro Carvalho Chehab
2633c8c09b5SMauro Carvalho Chehab#
2648283a092SHans Verkuil# Ancillary drivers (tuners, i2c, spi, frontends)
2653c8c09b5SMauro Carvalho Chehab#
2663c8c09b5SMauro Carvalho Chehab
2674fa4ef39SEzequiel Garciaconfig MEDIA_HIDE_ANCILLARY_SUBDRV
2684fa4ef39SEzequiel Garcia	bool
2694fa4ef39SEzequiel Garcia	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
2704fa4ef39SEzequiel Garcia	default y
2714fa4ef39SEzequiel Garcia
2721b80d36aSMauro Carvalho Chehabmenu "Media ancillary drivers"
2731b80d36aSMauro Carvalho Chehab	visible if !MEDIA_HIDE_ANCILLARY_SUBDRV
2741b80d36aSMauro Carvalho Chehab
275bb69ee27SMauro Carvalho Chehabconfig MEDIA_ATTACH
276bb69ee27SMauro Carvalho Chehab	bool
277bb69ee27SMauro Carvalho Chehab	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
278bb69ee27SMauro Carvalho Chehab	depends on MODULES
279bb69ee27SMauro Carvalho Chehab	default MODULES
280fccea74fSMauro Carvalho Chehab
2813c8c09b5SMauro Carvalho Chehabsource "drivers/media/i2c/Kconfig"
2828283a092SHans Verkuilsource "drivers/media/spi/Kconfig"
283fccea74fSMauro Carvalho Chehabsource "drivers/media/tuners/Kconfig"
2843c8c09b5SMauro Carvalho Chehabsource "drivers/media/dvb-frontends/Kconfig"
2853c8c09b5SMauro Carvalho Chehab
2865e9e60f4SMauro Carvalho Chehabendmenu
2875e9e60f4SMauro Carvalho Chehab
288ab482a6cSRandy Dunlapendif # MEDIA_SUPPORT
289