1# SPDX-License-Identifier: GPL-2.0
2menuconfig BCM_VIDEOCORE
3	tristate "Broadcom VideoCore support"
4	depends on OF
5	depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
6	default y
7	help
8		Support for Broadcom VideoCore services including
9		the BCM2835 family of products which is used
10		by the Raspberry PI.
11
12if BCM_VIDEOCORE
13
14config BCM2835_VCHIQ
15	tristate "BCM2835 VCHIQ"
16	depends on HAS_DMA
17	imply VCHIQ_CDEV
18	help
19		Broadcom BCM2835 and similar SoCs have a VPU called VideoCore.
20		This config enables the VCHIQ driver, which implements a
21		messaging interface between the kernel and the firmware running
22		on VideoCore. Other drivers use this interface to communicate to
23		the VPU. More specifically, the VCHIQ driver is used by
24		audio/video and camera drivers as well as for implementing MMAL
25		API, which is in turn used by several multimedia services on the
26		BCM2835 family of SoCs.
27
28		Defaults to Y when the Broadcom Videocore services are included
29		in the build, N otherwise.
30
31if BCM2835_VCHIQ
32
33config VCHIQ_CDEV
34	bool "VCHIQ Character Driver"
35	help
36		Enable the creation of VCHIQ character driver. The cdev exposes
37		ioctls used by userspace libraries and testing tools to interact
38		with VideoCore, via the VCHIQ core driver (Check BCM2835_VCHIQ
39		for more info).
40
41		This can be set to 'N' if the VideoCore communication is not
42		needed by userspace but only by other kernel modules
43		(like bcm2835-audio).
44
45		If not sure, set this to 'Y'.
46
47endif
48
49source "drivers/staging/vc04_services/bcm2835-audio/Kconfig"
50
51source "drivers/staging/vc04_services/bcm2835-camera/Kconfig"
52
53source "drivers/staging/vc04_services/vchiq-mmal/Kconfig"
54
55endif
56
57