xref: /openbmc/linux/drivers/media/Kconfig (revision 0c822d97)
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 "Video4Linux options"
195	visible if VIDEO_DEV
196
197source "drivers/media/v4l2-core/Kconfig"
198endmenu
199
200menu "Media controller options"
201	visible if MEDIA_CONTROLLER
202
203source "drivers/media/mc/Kconfig"
204endmenu
205
206menu "Digital TV options"
207	visible if DVB_CORE
208
209source "drivers/media/dvb-core/Kconfig"
210endmenu
211
212menu "HDMI CEC options"
213	visible if CEC_CORE
214
215source "drivers/media/cec/Kconfig"
216endmenu
217
218menu "Media drivers"
219
220comment "Drivers filtered as selected at 'Filter media drivers'"
221	depends on MEDIA_SUPPORT_FILTER
222
223source "drivers/media/usb/Kconfig"
224source "drivers/media/pci/Kconfig"
225source "drivers/media/radio/Kconfig"
226
227# Common driver options
228source "drivers/media/common/Kconfig"
229
230if MEDIA_PLATFORM_SUPPORT
231source "drivers/media/platform/Kconfig"
232source "drivers/media/test_drivers/Kconfig"
233source "drivers/media/mmc/Kconfig"
234endif
235
236source "drivers/media/firewire/Kconfig"
237
238endmenu
239
240#
241# Ancillary drivers (tuners, i2c, spi, frontends)
242#
243
244config MEDIA_HIDE_ANCILLARY_SUBDRV
245	bool
246	depends on MEDIA_SUBDRV_AUTOSELECT && !COMPILE_TEST && !EXPERT
247	default y
248
249menu "Media ancillary drivers"
250	visible if !MEDIA_HIDE_ANCILLARY_SUBDRV
251
252config MEDIA_ATTACH
253	bool
254	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
255	depends on MODULES
256	default MODULES
257
258source "drivers/media/i2c/Kconfig"
259source "drivers/media/spi/Kconfig"
260source "drivers/media/tuners/Kconfig"
261source "drivers/media/dvb-frontends/Kconfig"
262
263endmenu
264
265endif # MEDIA_SUPPORT
266