# SPDX-License-Identifier: GPL-2.0-only
config VIDEO_IPU3_CIO2
	tristate "Intel ipu3-cio2 driver"
	depends on VIDEO_DEV && PCI
	depends on ACPI || COMPILE_TEST
	depends on X86
	select MEDIA_CONTROLLER
	select VIDEO_V4L2_SUBDEV_API
	select V4L2_FWNODE
	select VIDEOBUF2_DMA_SG

	help
	  This is the Intel IPU3 CIO2 CSI-2 receiver unit, found in Intel
	  Skylake and Kaby Lake SoCs and used for capturing images and
	  video from a camera sensor.

	  Say Y or M here if you have a Skylake/Kaby Lake SoC with MIPI CSI-2
	  connected camera.
	  The module will be called ipu3-cio2.

config CIO2_BRIDGE
	bool "IPU3 CIO2 Sensors Bridge"
	depends on VIDEO_IPU3_CIO2 && ACPI
	help
	  This extension provides an API for the ipu3-cio2 driver to create
	  connections to cameras that are hidden in the SSDB buffer in ACPI.
	  It can be used to enable support for cameras in detachable / hybrid
	  devices that ship with Windows.

	  Say Y here if your device is a detachable / hybrid laptop that comes
	  with Windows installed by the OEM, for example:

		- Microsoft Surface models (except Surface Pro 3)
		- The Lenovo Miix line (for example the 510, 520, 710 and 720)
		- Dell 7285

	  If in doubt, say N here.
