xref: /openbmc/linux/drivers/media/Kconfig (revision b0cd4fb2)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Multimedia device configuration
4#
5
6source "drivers/media/rc/Kconfig"
7
8menuconfig MEDIA_SUPPORT
9	tristate "Multimedia support"
10	depends on HAS_IOMEM
11	help
12	  If you want to use media devices, including Webcams, Video grabber
13	  devices and/or TV devices, V4L2 codecs, etc, enable this option
14	  and other options below.
15
16	  Additional info and docs are available on the web at
17	  <https://linuxtv.org>
18
19if MEDIA_SUPPORT
20
21config MEDIA_SUPPORT_FILTER
22	bool "Filter media drivers"
23	depends on MEDIA_SUPPORT
24	default y if !EMBEDDED && !EXPERT
25	help
26	   Configuring the media subsystem can be complex, as there are
27	   hundreds of drivers and other config options.
28
29	   This menu offers option that will help the Kernel's config
30	   system to hide drivers that are out of the scope of the
31	   user needs, and disabling core support for unused APIs.
32
33	   If not selected, all non-optional media core functionality
34	   needed to support media drivers will be enabled. Also, all
35	   media device drivers should be shown.
36
37config MEDIA_SUBDRV_AUTOSELECT
38	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
39	depends on HAS_IOMEM
40	select I2C
41	select I2C_MUX
42	default y if MEDIA_SUPPORT_FILTER
43	help
44	  By default, a media driver auto-selects all possible ancillary
45	  devices such as tuners, sensors, video encoders/decoders and
46	  frontends, that are used by any of the supported devices.
47
48	  This is generally the right thing to do, except when there
49	  are strict constraints with regards to the kernel size,
50	  like on embedded systems.
51
52	  Use this option with care, as deselecting ancillary drivers which
53	  are, in fact, necessary will result in the lack of the needed
54	  functionality for your device (it may not tune or may not have
55	  the needed demodulators).
56
57	  If unsure say Y.
58
59menu "Media device types"
60	visible if MEDIA_SUPPORT_FILTER
61
62#
63# Multimedia support - automatically enable V4L2 and DVB core
64#
65config MEDIA_CAMERA_SUPPORT
66	bool "Cameras and video grabbers"
67	default y if !MEDIA_SUPPORT_FILTER
68	help
69	  Enable support for webcams and video grabbers.
70
71	  Say Y when you have a webcam or a video capture grabber board.
72
73config MEDIA_ANALOG_TV_SUPPORT
74	bool "Analog TV"
75	default y if !MEDIA_SUPPORT_FILTER
76	help
77	  Enable analog TV support.
78
79	  Say Y when you have a board with analog TV support.
80
81config MEDIA_DIGITAL_TV_SUPPORT
82	bool "Digital TV"
83	default y if !MEDIA_SUPPORT_FILTER
84	help
85	  Enable digital TV support.
86
87	  Say Y when you have a board with digital TV support.
88
89config MEDIA_RADIO_SUPPORT
90	bool "AM/FM radio receivers/transmitters"
91	default y if !MEDIA_SUPPORT_FILTER
92	help
93	  Enable AM/FM radio support.
94
95	  Additional info and docs are available on the web at
96	  <https://linuxtv.org>
97
98	  Say Y when you have a board with radio support.
99
100config MEDIA_SDR_SUPPORT
101	bool "Software defined radio"
102	default y if !MEDIA_SUPPORT_FILTER
103	help
104	  Enable software defined radio support.
105
106	  Say Y when you have a software defined radio device.
107
108config MEDIA_CEC_SUPPORT
109	bool "HDMI CEC"
110	default y if !MEDIA_SUPPORT_FILTER
111	help
112	  Enable support for HDMI CEC (Consumer Electronics Control),
113	  which is an optional HDMI feature.
114
115	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
116	  adapter that supports HDMI CEC.
117
118config MEDIA_PLATFORM_SUPPORT
119	bool "Platform-specific devices"
120	default y if !MEDIA_SUPPORT_FILTER
121	help
122	  Enable support for complex cameras, codecs, and other hardware
123	  that are integrated at the CPU, GPU or on Image Signalling Processor
124	  and don't use PCI, USB or Firewire buses.
125
126	  This is found on Embedded hardware (SoC), on V4L2 codecs and
127	  on some GPU and newer CPU chipsets.
128
129	  Say Y when you want to be able so see such devices.
130
131config MEDIA_TEST_SUPPORT
132	bool "Test drivers"
133	default y if !MEDIA_SUPPORT_FILTER
134	help
135	  Those drivers should not be used on production Kernels, but
136	  can be useful on debug ones. It enables several dummy drivers
137	  that simulate a real hardware. Very useful to test userspace
138	  applications and to validate if the subsystem core is doesn't
139	  have regressions.
140
141	  Say Y if you want to use some virtual test driver.
142
143	  In case of doubts, say N.
144	  Say Y when you have a software defined radio device.
145endmenu # media device types
146
147
148menu "Media core support"
149	visible if !MEDIA_SUPPORT_FILTER
150
151comment "Video4Linux core enabled to support hybrid TV devices"
152	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
153
154config VIDEO_DEV
155	tristate
156	prompt "Video4Linux core" if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
157	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
158	help
159	  Enables the V4L2 API, used by cameras, analog TV, video grabbers,
160	  radio devices and by some input devices.
161
162config MEDIA_CONTROLLER
163	bool "Media Controller API"
164	default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_PLATFORM_SUPPORT
165	help
166	  Enable the media controller API used to query media devices internal
167	  topology and configure it dynamically.
168
169	  This API is mostly used by camera interfaces in embedded platforms.
170
171#
172# DVB Core
173#	Only enables if one of DTV is selected
174#
175
176comment "Digital TV core enabled to support hybrid TV devices"
177	depends on MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI
178
179config DVB_CORE
180	tristate
181	prompt "Digital TV core"  if !(MEDIA_HYBRID_USB || MEDIA_HYBRID_PCI)
182	depends on MEDIA_DIGITAL_TV_SUPPORT
183	depends on (I2C || I2C=n)
184	select CRC32
185	help
186	  Enables the DVB API, used by Digital TV devices. Supports several
187	  standards, including DVB, ATSC, ISDB and CMDB.
188
189endmenu # Media core support
190
191#
192# Extra per-media API core functionality
193
194menu "Media core additional options"
195source "drivers/media/v4l2-core/Kconfig"
196source "drivers/media/mc/Kconfig"
197source "drivers/media/dvb-core/Kconfig"
198source "drivers/media/cec/Kconfig"
199endmenu
200
201menu "Media drivers"
202
203comment "Drivers filtered as selected at 'Filter media drivers'"
204	depends on MEDIA_SUPPORT_FILTER
205
206source "drivers/media/usb/Kconfig"
207source "drivers/media/pci/Kconfig"
208source "drivers/media/radio/Kconfig"
209
210# Common driver options
211source "drivers/media/common/Kconfig"
212
213if MEDIA_PLATFORM_SUPPORT
214source "drivers/media/platform/Kconfig"
215source "drivers/media/test_drivers/Kconfig"
216source "drivers/media/mmc/Kconfig"
217endif
218
219source "drivers/media/firewire/Kconfig"
220
221endmenu
222
223#
224# Ancillary drivers (tuners, i2c, spi, frontends)
225#
226
227config MEDIA_HIDE_ANCILLARY_SUBDRV
228	bool
229	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
230	default y
231
232menu "Media ancillary drivers"
233	visible if !MEDIA_HIDE_ANCILLARY_SUBDRV
234
235config MEDIA_ATTACH
236	bool
237	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
238	depends on MODULES
239	default MODULES
240
241source "drivers/media/i2c/Kconfig"
242source "drivers/media/spi/Kconfig"
243source "drivers/media/tuners/Kconfig"
244source "drivers/media/dvb-frontends/Kconfig"
245
246endmenu
247
248endif # MEDIA_SUPPORT
249