xref: /linux/drivers/media/Kconfig (revision f474808acb3c4b30552d9c59b181244e0300d218)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Multimedia device configuration
4#
5
6config CEC_CORE
7	tristate
8
9config CEC_NOTIFIER
10	bool
11
12config CEC_PIN
13	bool
14
15source "drivers/media/rc/Kconfig"
16
17menuconfig MEDIA_SUPPORT
18	tristate "Multimedia support"
19	depends on HAS_IOMEM
20	help
21	  If you want to use Webcams, Video grabber devices and/or TV devices
22	  enable this option and other options below.
23	  Additional info and docs are available on the web at
24	  <https://linuxtv.org>
25
26if MEDIA_SUPPORT
27
28comment "Multimedia core support"
29
30#
31# Multimedia support - automatically enable V4L2 and DVB core
32#
33config MEDIA_CAMERA_SUPPORT
34	bool "Cameras/video grabbers support"
35	help
36	  Enable support for webcams and video grabbers.
37
38	  Say Y when you have a webcam or a video capture grabber board.
39
40config MEDIA_ANALOG_TV_SUPPORT
41	bool "Analog TV support"
42	help
43	  Enable analog TV support.
44
45	  Say Y when you have a TV board with analog support or with a
46	  hybrid analog/digital TV chipset.
47
48	  Note: There are several DVB cards that are based on chips that
49		support both analog and digital TV. Disabling this option
50		will disable support for them.
51
52config MEDIA_DIGITAL_TV_SUPPORT
53	bool "Digital TV support"
54	help
55	  Enable digital TV support.
56
57	  Say Y when you have a board with digital support or a board with
58	  hybrid digital TV and analog TV.
59
60config MEDIA_RADIO_SUPPORT
61	bool "AM/FM radio receivers/transmitters support"
62	help
63	  Enable AM/FM radio support.
64
65	  Additional info and docs are available on the web at
66	  <https://linuxtv.org>
67
68	  Say Y when you have a board with radio support.
69
70	  Note: There are several TV cards that are based on chips that
71		support radio reception. Disabling this option will
72		disable support for them.
73
74config MEDIA_SDR_SUPPORT
75	bool "Software defined radio support"
76	help
77	  Enable software defined radio support.
78
79	  Say Y when you have a software defined radio device.
80
81config MEDIA_CEC_SUPPORT
82	bool "HDMI CEC support"
83	help
84	  Enable support for HDMI CEC (Consumer Electronics Control),
85	  which is an optional HDMI feature.
86
87	  Say Y when you have an HDMI receiver, transmitter or a USB CEC
88	  adapter that supports HDMI CEC.
89
90source "drivers/media/cec/Kconfig"
91
92source "drivers/media/mc/Kconfig"
93
94#
95# Video4Linux support
96#	Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
97#
98
99config VIDEO_DEV
100	tristate
101	depends on MEDIA_SUPPORT
102	depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT
103	default y
104
105config VIDEO_V4L2_SUBDEV_API
106	bool "V4L2 sub-device userspace API"
107	depends on VIDEO_DEV && MEDIA_CONTROLLER
108	help
109	  Enables the V4L2 sub-device pad-level userspace API used to configure
110	  video format, size and frame rate between hardware blocks.
111
112	  This API is mostly used by camera interfaces in embedded platforms.
113
114source "drivers/media/v4l2-core/Kconfig"
115
116#
117# DVB Core
118#	Only enables if one of DTV is selected
119#
120
121config DVB_CORE
122	tristate
123	depends on MEDIA_SUPPORT
124	depends on MEDIA_DIGITAL_TV_SUPPORT
125	depends on (I2C || I2C=n)
126	default y
127	select CRC32
128
129config DVB_MMAP
130	bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
131	depends on DVB_CORE
132	depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
133	select VIDEOBUF2_VMALLOC
134	help
135	  This option enables DVB experimental memory-mapped API, which
136	  reduces the number of context switches to read DVB buffers, as
137	  the buffers can use mmap() syscalls.
138
139	  Support for it is experimental. Use with care. If unsure,
140	  say N.
141
142config DVB_NET
143	bool "DVB Network Support"
144	default (NET && INET)
145	depends on NET && INET && DVB_CORE
146	help
147	  This option enables DVB Network Support which is a part of the DVB
148	  standard. It is used, for example, by automatic firmware updates used
149	  on Set-Top-Boxes. It can also be used to access the Internet via the
150	  DVB card, if the network provider supports it.
151
152	  You may want to disable the network support on embedded devices. If
153	  unsure say Y.
154
155# This Kconfig option is used by both PCI and USB drivers
156config TTPCI_EEPROM
157	tristate
158	depends on I2C
159
160source "drivers/media/dvb-core/Kconfig"
161
162comment "Media drivers"
163
164#
165# V4L platform/mem2mem drivers
166#
167
168source "drivers/media/usb/Kconfig"
169source "drivers/media/pci/Kconfig"
170source "drivers/media/platform/Kconfig"
171source "drivers/media/mmc/Kconfig"
172source "drivers/media/radio/Kconfig"
173
174comment "Supported FireWire (IEEE 1394) Adapters"
175	depends on DVB_CORE && FIREWIRE
176source "drivers/media/firewire/Kconfig"
177
178# Common driver options
179source "drivers/media/common/Kconfig"
180
181comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
182
183#
184# Ancillary drivers (tuners, i2c, spi, frontends)
185#
186
187config MEDIA_SUBDRV_AUTOSELECT
188	bool "Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)"
189	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_CAMERA_SUPPORT || MEDIA_SDR_SUPPORT
190	depends on HAS_IOMEM
191	select I2C
192	select I2C_MUX
193	default y
194	help
195	  By default, a media driver auto-selects all possible ancillary
196	  devices such as tuners, sensors, video encoders/decoders and
197	  frontends, that are used by any of the supported devices.
198
199	  This is generally the right thing to do, except when there
200	  are strict constraints with regards to the kernel size,
201	  like on embedded systems.
202
203	  Use this option with care, as deselecting ancillary drivers which
204	  are, in fact, necessary will result in the lack of the needed
205	  functionality for your device (it may not tune or may not have
206	  the needed demodulators).
207
208	  If unsure say Y.
209
210config MEDIA_ATTACH
211	bool
212	depends on MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_RADIO_SUPPORT
213	depends on MODULES
214	default MODULES
215
216source "drivers/media/i2c/Kconfig"
217source "drivers/media/spi/Kconfig"
218source "drivers/media/tuners/Kconfig"
219source "drivers/media/dvb-frontends/Kconfig"
220
221endif # MEDIA_SUPPORT
222