Cameras, Devicetree and ACPI: A Device Driver Perspective
summary
Two camera classes exist: simple USB webcams and complex camera modules (sensor + ISP + VCM) that expose wiring, lanes and power to the OS. Device tree support is mature (device-tree since 2012) and parses cleanly via the firmware-node API, while ACPI uses ACPI DSD/CRS blobs and multiple vendor variants (Linux-specific Chromebook format 2017, IPU3 variant 2019), forcing drivers to instantiate regulators/clocks and software nodes. Drivers use referral_to_fwnode_endpoint to parse endpoints; power-management differences cause extra probe complexity and issues like privacy LED blink.
AI-written summary · about
chapters (4)
- 0:00Start
- 16:32Main function to access Devicetree graph endpoint specific information for sub-devices • Parses Devicetree compliant data structure of nodes and properties
- 17:02ACPI camera definition parsing - Linux specific • Fwnode property API ACPI backend • Graph parsing code for ACPI_DSD nodes and properties • A few additional checks in graph parsing code in drivers/acpi/properties.c for camera definitions
- 28:05Power management in ACPI and Devicetree based systems • ACPI handles power management via_PSx methods and power resources (PRX) • In Devicetree systems the driver is responsible for its power on and off sequences - Regulators, GPIOs and clocks available to the driver
related talks
42mCameras in Embedded Systems: Device Tree and ACPI View
30mComplex Cameras on Linux
36mCamera Sensor Drivers Compliance
26mDeviceTrees - MIPI SoundWire® Device Class for Audio (SDCA) and classic ACPI-DT...
46mWhy Embedded Cameras are Difficult, and How to Make Them Easy
48mGiving Linux a Camera Stack: libcamera's 3 Years Journey and Exciting Future
27mBoF: Cameras on Linux
33mBring Your Camera into 2018: Forward Porting Image Sensor Drivers
