mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 02:31:27 +02:00
Add driver for Intel Computer Vision Sensing (CVS) devices found on Intel Luna Lake (LNL), Panther Lake (PTL), and Arrow Lake (ARL) platforms. The CVS device acts as a V4L2 sub-device bridge that manages CSI-2 link ownership between the host (Linux) and firmware for camera sensors. It provides: - Query the device status via sysfs interface - CSI-2 link ownership arbitration between host and CVS firmware - MIPI CSI-2 configuration management - Privacy LED control coordination - Power management integration with runtime PM The driver consists of two main components: core.c: Core driver with probe, command transport, and power management v4l2.c: V4L2 sub-device and media framework integration Hardware Interface: - I2C for command/control communication with device firmware - GPIO signals for ownership handshaking (request/response) - Optional reset and wake interrupt for full-capability variants - Integration with Intel IPU via ipu_bridge The driver supports two hardware capability levels: - Light capability: Basic GPIO-based ownership (2 GPIOs) - Full capability: Enhanced with reset control and wake IRQ (4 GPIOs) Device-specific quirks are handled via a quirk table to accommodate variations across different CVS implementations (Lattice, Synaptics). In addition to I2C-based operation, the driver supports platform device instantiation for systems where CVS is exposed without I2C transport, falling back to GPIO-only ownership control. The CVS driver integrates with the IPU bridge for automatic device discovery via ACPI on supported platforms. PCI device IDs for Intel IPU7 (0x645d, shared by MTL and LNL) and IPU7.5 (0xb05d, shared by ARL and PTL) are included in the driver-local icvs_pci_tbl lookup table, enabling CVS to locate these IPU variants without modifying the shared ipu6-pci-table header. A PM runtime device link is established between IPU (consumer) and CVS (supplier) so that the PM framework automatically resumes CVS before IPU begins streaming, triggering cvs_runtime_resume() to claim CSI-2 link ownership. Ownership is released via cvs_runtime_suspend() after the autosuspend delay. Signed-off-by: Miguel Vadillo <miguel.vadillo@intel.com> Tested-by: Mehdi Djait <mehdi.djait@linux.intel.com> # Dell XPS 13 9350 + IPU7 Reviewed-by: Mehdi Djait <mehdi.djait@linux.intel.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
22 lines
743 B
Plaintext
22 lines
743 B
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
config VIDEO_INTEL_CVS
|
|
tristate "Intel CVS CSI-2 bridge support"
|
|
depends on I2C && ACPI && VIDEO_DEV
|
|
depends on IPU_BRIDGE || !IPU_BRIDGE
|
|
select MEDIA_CONTROLLER
|
|
select VIDEO_V4L2_SUBDEV_API
|
|
select V4L2_FWNODE
|
|
help
|
|
This adds support for the Intel Computer Vision Sensing (CVS).
|
|
|
|
The driver registers a V4L2 sub-device to arbitrate CSI-2 link
|
|
ownership between the host and CVS firmware, and configures the
|
|
device for camera sensor streaming.
|
|
|
|
The driver can operate with full I2C transport or in a reduced
|
|
platform (GPIO-only) mode when I2C is unavailable.
|
|
|
|
Say Y to build into the kernel, or M to build as a module.
|
|
The module will be named intel_cvs. If unsure, say N.
|