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. This config
20		enables the VCHIQ driver, which implements a messaging interface between
21		the kernel and the firmware running on VideoCore. Other drivers use this
22		interface to communicate to the VPU. More specifically, the VCHIQ driver is
23		used by audio/video and camera drivers as well as for implementing MMAL
24		API, which is in turn used by several multimedia services on the BCM2835
25		family of SoCs.
26		Defaults to Y when the Broadcom Videocore services are included in
27		the build, N otherwise.
28
29if BCM2835_VCHIQ
30
31config VCHIQ_CDEV
32	bool "VCHIQ Character Driver"
33	help
34		Enable the creation of VCHIQ character driver. The cdev exposes ioctls used
35		by userspace libraries and testing tools to interact with VideoCore, via
36		the VCHIQ core driver (Check BCM2835_VCHIQ for more info).
37		This can be set to 'N' if the VideoCore communication is not needed by
38		userspace but only by other kernel modules (like bcm2835-audio).  If not
39		sure, set this to 'Y'.
40
41endif
42
43source "drivers/staging/vc04_services/bcm2835-audio/Kconfig"
44
45source "drivers/staging/vc04_services/bcm2835-camera/Kconfig"
46
47source "drivers/staging/vc04_services/vchiq-mmal/Kconfig"
48
49endif
50
51