# SPDX-License-Identifier: GPL-2.0
menuconfig BCM_VIDEOCORE
	tristate "Broadcom VideoCore support"
	depends on OF
	depends on RASPBERRYPI_FIRMWARE || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
	default y
	help
		Support for Broadcom VideoCore services including
		the BCM2835 family of products which is used
		by the Raspberry PI.

if BCM_VIDEOCORE

config BCM2835_VCHIQ
	tristate "BCM2835 VCHIQ"
	depends on HAS_DMA
	imply VCHIQ_CDEV
	help
		Broadcom BCM2835 and similar SoCs have a VPU called VideoCore. This config
		enables the VCHIQ driver, which implements a messaging interface between
		the kernel and the firmware running on VideoCore. Other drivers use this
		interface to communicate to the VPU. More specifically, the VCHIQ driver is
		used by audio/video and camera drivers as well as for implementing MMAL
		API, which is in turn used by several multimedia services on the BCM2835
		family of SoCs.
		Defaults to Y when the Broadcom Videocore services are included in
		the build, N otherwise.

if BCM2835_VCHIQ

config VCHIQ_CDEV
	bool "VCHIQ Character Driver"
	help
		Enable the creation of VCHIQ character driver. The cdev exposes ioctls used
		by userspace libraries and testing tools to interact with VideoCore, via
		the VCHIQ core driver (Check BCM2835_VCHIQ for more info).
		This can be set to 'N' if the VideoCore communication is not needed by
		userspace but only by other kernel modules (like bcm2835-audio).  If not
		sure, set this to 'Y'.

endif

source "drivers/staging/vc04_services/bcm2835-audio/Kconfig"

source "drivers/staging/vc04_services/bcm2835-camera/Kconfig"

source "drivers/staging/vc04_services/vchiq-mmal/Kconfig"

endif

