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