[PATCH v1 0/4] Raspberry Pi: Add support for Pi 5 (PiSP)

Naushir Patuck naush at raspberrypi.com
Mon Jan 13 10:24:42 CET 2025


Hi,

A long time coming... this series add support for Raspberry Pi 5 (PiSP) to
upstream libcamera. The IPA and pipeline handler code have been taken mostly
unchanged from the Raspberry Pi downstream libcamera tree:
https://github.com/raspberrypi/libcamera. Support for IMX500 and CNNs are not
available in this series since we have yet to attempt to upstream the kernel
changes.

IMPORTANT NOTE
--------------
The Pi 5 pipeline handler in this commit is NOT COMPATIBLE with the Raspberry Pi
kernel drivers just yet! Instead, you must use the mainline kernel upstream
drivers with this pipeline handler. When futher upstreaming development for
embedded data is completed, RPi will backport the upstream kernel drives to our
tree and this pipeline handler will then begin to work with both upstream and
downstream kernel trees.

Thanks,
Naush

Naushir Patuck (4):
  meson: Add libpisp.wrap
  ipa: rpi: Add support for Raspberry Pi 5
  pipeline: rpi: Add new stream flags for PiSP
  pipeline: rpi: Add support for Raspberry Pi 5

 Documentation/guides/pipeline-handler.rst     |    2 +-
 include/libcamera/ipa/meson.build             |    1 +
 include/libcamera/meson.build                 |    1 +
 meson.build                                   |    1 +
 meson_options.txt                             |    4 +-
 src/ipa/rpi/pisp/data/imx219.json             | 1187 +++++++++
 src/ipa/rpi/pisp/data/imx219_noir.json        | 1112 ++++++++
 src/ipa/rpi/pisp/data/imx290.json             |  341 +++
 src/ipa/rpi/pisp/data/imx296.json             | 1194 +++++++++
 src/ipa/rpi/pisp/data/imx296_16mm.json        | 1247 +++++++++
 src/ipa/rpi/pisp/data/imx296_6mm.json         | 1247 +++++++++
 src/ipa/rpi/pisp/data/imx296_mono.json        |  960 +++++++
 src/ipa/rpi/pisp/data/imx378.json             |  634 +++++
 src/ipa/rpi/pisp/data/imx415.json             | 1159 ++++++++
 src/ipa/rpi/pisp/data/imx462.json             |  342 +++
 src/ipa/rpi/pisp/data/imx477.json             | 1186 +++++++++
 src/ipa/rpi/pisp/data/imx477_16mm.json        | 1240 +++++++++
 src/ipa/rpi/pisp/data/imx477_6mm.json         | 1240 +++++++++
 src/ipa/rpi/pisp/data/imx477_noir.json        | 1148 ++++++++
 src/ipa/rpi/pisp/data/imx477_scientific.json  |  546 ++++
 src/ipa/rpi/pisp/data/imx519.json             |  634 +++++
 src/ipa/rpi/pisp/data/imx708.json             | 1270 +++++++++
 src/ipa/rpi/pisp/data/imx708_noir.json        | 1233 +++++++++
 src/ipa/rpi/pisp/data/imx708_wide.json        | 1293 +++++++++
 src/ipa/rpi/pisp/data/imx708_wide_noir.json   | 1148 ++++++++
 src/ipa/rpi/pisp/data/meson.build             |   29 +
 src/ipa/rpi/pisp/data/ov5647.json             | 1186 +++++++++
 src/ipa/rpi/pisp/data/ov5647_noir.json        | 1121 ++++++++
 src/ipa/rpi/pisp/data/ov64a40.json            | 1133 ++++++++
 src/ipa/rpi/pisp/data/ov9281_mono.json        |  215 ++
 src/ipa/rpi/pisp/data/se327m12.json           |  639 +++++
 src/ipa/rpi/pisp/data/uncalibrated.json       |  135 +
 src/ipa/rpi/pisp/meson.build                  |   49 +
 src/ipa/rpi/pisp/pisp.cpp                     | 1068 ++++++++
 src/libcamera/control_ids_rpi.yaml            |   13 +
 .../pipeline/rpi/common/rpi_stream.h          |   10 +
 .../pipeline/rpi/pisp/data/example.yaml       |   45 +
 .../pipeline/rpi/pisp/data/meson.build        |    8 +
 src/libcamera/pipeline/rpi/pisp/meson.build   |   12 +
 src/libcamera/pipeline/rpi/pisp/pisp.cpp      | 2372 +++++++++++++++++
 subprojects/.gitignore                        |    1 +
 subprojects/libpisp.wrap                      |    6 +
 42 files changed, 28410 insertions(+), 2 deletions(-)
 create mode 100644 src/ipa/rpi/pisp/data/imx219.json
 create mode 100644 src/ipa/rpi/pisp/data/imx219_noir.json
 create mode 100644 src/ipa/rpi/pisp/data/imx290.json
 create mode 100644 src/ipa/rpi/pisp/data/imx296.json
 create mode 100644 src/ipa/rpi/pisp/data/imx296_16mm.json
 create mode 100644 src/ipa/rpi/pisp/data/imx296_6mm.json
 create mode 100644 src/ipa/rpi/pisp/data/imx296_mono.json
 create mode 100644 src/ipa/rpi/pisp/data/imx378.json
 create mode 100755 src/ipa/rpi/pisp/data/imx415.json
 create mode 100644 src/ipa/rpi/pisp/data/imx462.json
 create mode 100644 src/ipa/rpi/pisp/data/imx477.json
 create mode 100644 src/ipa/rpi/pisp/data/imx477_16mm.json
 create mode 100644 src/ipa/rpi/pisp/data/imx477_6mm.json
 create mode 100644 src/ipa/rpi/pisp/data/imx477_noir.json
 create mode 100644 src/ipa/rpi/pisp/data/imx477_scientific.json
 create mode 100644 src/ipa/rpi/pisp/data/imx519.json
 create mode 100644 src/ipa/rpi/pisp/data/imx708.json
 create mode 100644 src/ipa/rpi/pisp/data/imx708_noir.json
 create mode 100644 src/ipa/rpi/pisp/data/imx708_wide.json
 create mode 100644 src/ipa/rpi/pisp/data/imx708_wide_noir.json
 create mode 100644 src/ipa/rpi/pisp/data/meson.build
 create mode 100644 src/ipa/rpi/pisp/data/ov5647.json
 create mode 100644 src/ipa/rpi/pisp/data/ov5647_noir.json
 create mode 100755 src/ipa/rpi/pisp/data/ov64a40.json
 create mode 100644 src/ipa/rpi/pisp/data/ov9281_mono.json
 create mode 100644 src/ipa/rpi/pisp/data/se327m12.json
 create mode 100644 src/ipa/rpi/pisp/data/uncalibrated.json
 create mode 100644 src/ipa/rpi/pisp/meson.build
 create mode 100644 src/ipa/rpi/pisp/pisp.cpp
 create mode 100644 src/libcamera/pipeline/rpi/pisp/data/example.yaml
 create mode 100644 src/libcamera/pipeline/rpi/pisp/data/meson.build
 create mode 100644 src/libcamera/pipeline/rpi/pisp/meson.build
 create mode 100644 src/libcamera/pipeline/rpi/pisp/pisp.cpp
 create mode 100644 subprojects/libpisp.wrap

-- 
2.43.0



More information about the libcamera-devel mailing list