Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rpi/embedded data support/rpi 6.6.y #6437

Open
wants to merge 159 commits into
base: rpi-6.6.y
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
159 commits
Select commit Hold shift + click to select a range
7739b20
media: v4l2-mc: Make v4l2_pipeline_pm_{get,put} deprecated
Aug 23, 2023
0fa0307
Documentation: media: camera-sensor: Fix typo and vocabulary selection
pinchartl Sep 14, 2023
06dd267
Documentation: media: camera-sensor: Use link to upstream DT bindings
pinchartl Sep 14, 2023
62890b4
Documentation: media: camera-sensor: Move power management section
pinchartl Sep 14, 2023
8ae18d5
Documentation: media: camera-sensor: Improve power management documen…
pinchartl Sep 14, 2023
a6f30c6
media: Add MIPI CSI-2 generic long packet type definition
Sep 12, 2023
1641823
media: v4l2-subdev: Rename pad config 'try_*' fields
pinchartl Oct 23, 2023
02718b8
media: i2c: Use accessors for pad config 'try_*' fields
pinchartl Oct 23, 2023
5efa20e
media: v4l2-subdev: Drop outdated comment for v4l2_subdev_pad_config
pinchartl Oct 23, 2023
f64f2cd
media: v4l2-subdev: Fix references to pad config
pinchartl Oct 27, 2023
eae12f8
media: v4l: subdev: Store the sub-device in the sub-device state
Oct 13, 2023
f26dfaf
media: v4l: subdev: Also return pads array information on stream func…
Oct 13, 2023
edb51ed
media: v4l: subdev: Rename sub-device state information access functions
Oct 13, 2023
51e3750
media: v4l: subdev: v4l2_subdev_state_get_format always returns forma…
Oct 13, 2023
5268165
media: v4l: subdev: Make stream argument optional in state access fun…
Oct 23, 2023
00026ab
media: v4l: subdev: Always compile sub-device state access functions
Nov 10, 2023
89954ba
media: v4l: subdev: Remove stream-unaware sub-device state access
Oct 13, 2023
e46dcc9
Revert "media: v4l: subdev: Remove stream-unaware sub-device state ac…
tomba Oct 1, 2024
f797e96
media: v4l: subdev: Return NULL from pad access functions on error
Oct 25, 2023
b66fbb8
media: v4l: Safely to call v4l2_subdev_cleanup on an uninitialised su…
Dec 7, 2023
f320860
media: v4l: subdev: Move out subdev state lock macros outside CONFIG_…
tomba Dec 13, 2023
8aec6db
media: Documentation: Align numbered list, make it a proper ReST
Aug 2, 2023
5944c6b
media: v4l: subdev: Clear frame descriptor before get_frame_desc
Sep 15, 2023
5d436fe
media: v4l: subdev: Print debug information on frame descriptor
Sep 12, 2023
7e67914
media: Documentation: Split camera sensor documentation
Sep 27, 2023
1f604ee
media: mc: Check pad flag validity
Apr 25, 2023
27a2ba8
media: uapi: Add generic serial metadata mbus formats
Apr 25, 2023
b3d32df
media: uapi: Document which mbus format fields are valid for metadata
Aug 1, 2023
b96cbe1
media: uapi: v4l: Add generic 8-bit metadata format definitions
Apr 26, 2023
07a4959
media: v4l: Support line-based metadata capture
Feb 21, 2023
b9a6105
media: v4l: Set line based metadata flag in V4L2 core
Apr 23, 2024
f62e3a1
media: v4l: subdev: Add a function to lock two sub-device states, use it
Sep 6, 2023
ffff6fe
media: v4l: subdev: Copy argument back to user also for S_ROUTING
Aug 31, 2023
119fb31
media: v4l: subdev: Add len_routes field to struct v4l2_subdev_routing
Aug 31, 2023
0d4b7c4
media: v4l: subdev: Return routes set using S_ROUTING
Sep 6, 2023
0d486c4
media: v4l: subdev: Add trivial set_routing support
Aug 31, 2023
580bc6e
media: uapi: v4l: Don't expose generic metadata formats to userspace
pinchartl Apr 26, 2024
ec7e169
media: subdev: Add privacy led helpers
tomba Apr 24, 2024
841c6e7
media: subdev: Use v4l2_subdev_has_op() in v4l2_subdev_enable/disable…
tomba Apr 24, 2024
e2f88df
media: subdev: Add checks for subdev features
tomba Apr 24, 2024
63852d5
media: subdev: Fix use of sd->enabled_streams in call_s_stream()
tomba Apr 24, 2024
a544c51
media: subdev: Improve v4l2_subdev_enable/disable_streams_fallback
tomba Apr 24, 2024
131b03d
media: subdev: Add v4l2_subdev_is_streaming()
tomba Apr 24, 2024
0b0d7f2
media: subdev: Support privacy led in v4l2_subdev_enable/disable_stre…
tomba Apr 24, 2024
be0b8bb
media: subdev: Refactor v4l2_subdev_enable/disable_streams()
tomba Apr 24, 2024
370ae3c
media: subdev: Support single-stream case in v4l2_subdev_enable/disab…
tomba Apr 24, 2024
dcc47b5
media: subdev: Support non-routing subdevs in v4l2_subdev_s_stream_he…
tomba Apr 24, 2024
f1fb219
media: v4l2-subdev: Drop unreacheable warning
Nov 13, 2023
5d70c5e
media: v4l2-subdev: Refactor warnings in v4l2_subdev_link_validate()
Jun 18, 2024
0280f88
media: v4l2-subdev: Support hybrid links in v4l2_subdev_link_validate()
Jun 19, 2024
f3cbee2
media: i2c: Drop ifdeffery from sensor drivers
Sep 11, 2023
295202c
media: atmel-isc: Use accessors for pad config 'try_*' fields
pinchartl Oct 23, 2023
cebb405
media: tegra-video: Use accessors for pad config 'try_*' fields
pinchartl Oct 23, 2023
af4e175
media: atmel-isi: Use accessors for pad config 'try_*' fields
pinchartl Oct 23, 2023
feec322
media: microchip-isc: Use accessors for pad config 'try_*' fields
pinchartl Oct 23, 2023
b2842a8
media: atomisp: Use accessors for pad config 'try_*' fields
pinchartl Oct 23, 2023
eb6aadc
media: ccs: Correct error handling in ccs_register_subdev
Aug 23, 2023
40931cd
media: ccs: Switch to init_cfg
Aug 9, 2023
08156a0
media: ccs: Rename ccs_create_subdev as ccs_init_subdev
Oct 2, 2023
9f0b458
media: ccs: Move media_entity_pads_init to init from register
Oct 2, 2023
e1176f4
media: ccs: Obtain media bus formats before initialising up sub-devices
Oct 2, 2023
55ca4a0
media: ccs: Use sub-device active state
Aug 24, 2023
90c3225
media: ccs: Drop re-entrant s_stream support
Sep 29, 2023
dd9cfed
media: ccs: Rework initialising sub-device state
Oct 9, 2023
84819ce
media: ccs: Fix a (harmless) lockdep warning
Oct 9, 2023
0fa1979
media: ccs: Ensure control handlers have been set up after probe
Oct 14, 2023
04b30de
media: cadence: csi2rx: Cleanup media entity properly
Oct 9, 2023
53c3aab
media: cadence: csi2rx: Add get_fmt and set_fmt pad ops
Oct 9, 2023
84830ed
media: rkisp1: csi: Use V4L2 subdev active state
pinchartl Jan 26, 2023
7485213
media: rkisp1: isp: Use V4L2 subdev active state
pinchartl Jan 26, 2023
5940114
media: rkisp1: resizer: Use V4L2 subdev active state
pinchartl Jan 26, 2023
4be8afc
media: rkisp1: resizer: Constify argument and local variables
pinchartl Sep 23, 2023
724ff50
media: rkisp1: resizer: Use v4l2_area instead of v4l2_rect to store size
pinchartl Sep 23, 2023
3afbf4e
media: rkisp1: resizer: Drop unneeded local variable
pinchartl Sep 23, 2023
24247a3
media: v4l: subdev: Switch to stream-aware state functions
Oct 13, 2023
f5894bc
media: saa6752hs: Don't set format in sub-device state
Dec 6, 2023
b96b84f
media: adv7183: Don't set format in sub-device state
Dec 6, 2023
18d9e87
media: mt9t112: Don't set format in sub-device state
Dec 6, 2023
019abb1
media: rj54n1cb0c: Don't set format in sub-device state
Dec 6, 2023
3df44db
media: tw9910: Don't set format in sub-device state
Dec 6, 2023
beb33ef
media: ov9640: Don't set format in sub-device state
Dec 6, 2023
24f4874
media: i2c: ov2740: Drop check for reentrant .s_stream()
pinchartl Sep 14, 2023
11a4036
media: i2c: ov2740: Drop system suspend and resume handlers
pinchartl Sep 14, 2023
5c0ba16
media: ov2740: Enable runtime PM before registering the async subdev
Sep 8, 2023
fa22d7b
media: ov2740: Use sub-device active state
Sep 7, 2023
f6f2ccb
media: ov2740: Return -EPROBE_DEFER if no endpoint is found
Sep 8, 2023
2a1eaec
media: i2c: ov9282: Drop check for reentrant .s_stream()
pinchartl Sep 14, 2023
8b56983
media: i2c: Fix references to pad config
pinchartl Oct 27, 2023
d2abb8e
media: v4l2-subdev: Rename .init_cfg() operation to .init_state()
pinchartl Nov 27, 2023
b5c6666
media: Documentation: Additional streams generally don't harm capture
Apr 16, 2024
ad8e15c
media: Documentation: v4l: Document internal sink pads
Apr 16, 2024
3841a0f
media: uapi: ccs: Add media bus code for MIPI CCS embedded data
May 13, 2014
106b869
media: Documentation: ccs: Document routing
Sep 20, 2023
46319ea
media: uapi: Add media bus code for ov2740 embedded data
Sep 12, 2023
d9e60b0
media: Documentation: Document S_ROUTING behaviour
Apr 16, 2024
7b038f4
media: v4l: subdev: Move G_ROUTING handling below S_ROUTING
Apr 16, 2024
e25467e
media: mc: Add INTERNAL pad flag
Apr 16, 2024
84dbb3e
media: v4l: Add V4L2_SUBDEV_ROUTE_FL_IMMUTABLE sub-device routing flag
Apr 16, 2024
d1695bc
Remove legacy CFE
tomba Oct 1, 2024
7b4f280
media: uapi: Add meta formats for PiSP FE config and stats
tomba Oct 3, 2024
3e1245d
dt-bindings: media: Add bindings for raspberrypi,rp1-cfe
tomba Oct 3, 2024
48a6442
media: raspberrypi: Add support for RP1-CFE
tomba Oct 3, 2024
30342f7
cfe: fix backporting compile issues
tomba Oct 1, 2024
a40c58d
media: admin-guide: Document the Raspberry Pi CFE (rp1-cfe)
tomba Oct 3, 2024
657c2cd
media: bcm2835-unicam: Pull in driver from mainline
jailuthra Oct 23, 2024
28ba811
media: broadcom: bcm2835: Fix compile issues on BSP
Oct 24, 2024
1bac79a
drivers: media: bcm2835_unicam: Improve frame sequence count handling
naushir Jun 16, 2023
9d55895
media: bcm2835-unicam: Add option for a GPIO to reflect FS/FE timing
6by9 Apr 3, 2024
fb610c5
uapi: bcm2835-isp: Re-assign V4L2_CID_USER_BCM2835_ISP_BASE
jailuthra Oct 23, 2024
2f5af07
ARM: dts: bcm270x: Update unicam node
jailuthra Oct 23, 2024
1ff5b3f
Revert "fixup downstream patch post driver conversion to CCI_REG"
jailuthra Oct 21, 2024
dc07b3a
Revert "media: i2c: imx219: fix binning and rate_factor for 480p and …
jailuthra Oct 21, 2024
35840aa
Revert "media: i2c: imx219: Scale the pixel clock rate for the 640x48…
jailuthra Oct 21, 2024
a10eae5
Revert "media: imx219: Advertise embedded data node on media pad 1"
jailuthra Oct 21, 2024
9654719
Revert "media: i2c: imx219: make HBLANK r/w to allow longer exposures"
jailuthra Oct 21, 2024
5193cb6
Revert "media: i2c: imx219: Correct the minimum vblanking value"
jailuthra Oct 21, 2024
51b4844
media: i2c: imx219: Drop check for reentrant .s_stream()
pinchartl Sep 14, 2023
008a242
media: i2c: imx219: Drop system suspend and resume handlers
pinchartl Sep 14, 2023
412a86e
media: i2c: imx219: Drop unused macros
pinchartl Sep 24, 2023
c60020b
media: i2c: imx219: Fix test pattern window for 640x480 mode
pinchartl Sep 24, 2023
cdf988f
media: i2c: imx219: Set mode registers programmatically
pinchartl Sep 24, 2023
fdeaf48
media: i2c: imx219: Merge format and binning setting functions
pinchartl Sep 24, 2023
aaa0fb1
media: i2c: imx219: Initialize ycbcr_enc
pinchartl Sep 24, 2023
b5a2538
media: i2c: imx219: Use active crop rectangle to configure registers
pinchartl Sep 24, 2023
b33a870
media: i2c: imx219: Infer binning settings from format and crop
pinchartl Sep 24, 2023
6a9e2dc
media: i2c: imx219: Access height from active format in imx219_set_ctrl
pinchartl Sep 24, 2023
f2c4c21
media: i2c: imx219: Don't store the current mode in the imx219 structure
pinchartl Sep 24, 2023
cae8547
media: i2c: imx219: Drop IMX219_VTS_* macros
pinchartl Sep 24, 2023
11ae0d9
media: i2c: imx219: Group functions by purpose
pinchartl Sep 24, 2023
ec3abc4
media: i2c: imx219: Remove unneeded goto
pinchartl Sep 24, 2023
9f18d30
media: i2c: imx219: Implement .init_cfg() using .set_fmt()
pinchartl Sep 24, 2023
2824dd0
media: i2c: imx219: Separate horizontal and vertical binning
pinchartl Sep 24, 2023
f010f05
media: i2c: imx219: Calculate crop rectangle dynamically
pinchartl Sep 24, 2023
55cfe8f
media: i2c: imx219: Name all subdev state variables 'state'
pinchartl Sep 24, 2023
c05eff1
media: i2c: imx219: Move variables to inner scope
pinchartl Sep 24, 2023
60ff995
media: i2c: imx219: Inline imx219_update_pad_format() in its caller
pinchartl Aug 18, 2023
6ce9fce
media: i2c: imx219: Add internal image sink pad
pinchartl Aug 15, 2023
6048ed9
media: i2c: imx219: Add image stream
pinchartl Aug 15, 2023
97c2003
media: i2c: imx219: Switch to .{enable,disable}_streams() operations
pinchartl Apr 4, 2024
489edcf
media: i2c: imx219: Report internal routes to userspace
pinchartl Aug 15, 2023
aca395a
media: i2c: imx219: Report streams using frame descriptors
pinchartl Aug 21, 2023
e3bc87d
media: i2c: imx219: Add embedded data support
pinchartl Aug 21, 2023
93f7e0c
media: i2c: imx219: Correct the minimum vblanking value
davidplowman Jan 25, 2022
4b6dba8
media: i2c: imx219: make HBLANK r/w to allow longer exposures
6by9 Sep 14, 2023
7906547
media: i2c: imx219: Scale the pixel clock rate for the 640x480 mode
naushir Feb 8, 2022
2003f3d
fixup downstream patch post driver conversion to CCI_REG
6by9 Dec 27, 2023
5601b5a
media: i2c: imx219: fix binning and rate_factor for 480p and 1232p
vvarma Oct 22, 2024
546fab1
drivers: media: i2c: Add streams support to IMX477
naushir Mar 20, 2024
7b3734a
media: i2c: imx477: Switch to .{enable,disable}_streams() operations
jailuthra Oct 25, 2024
f26b910
drivers: media: i2c: Add streams support to IMX708
naushir Mar 20, 2024
daaf017
media: i2c: imx708: Switch to .{enable,disable}_streams() operations
jailuthra Oct 25, 2024
c41fb12
drivers: media: i2c: Add streams support to IMX519
naushir Mar 21, 2024
d043f59
media: i2c: imx519: Switch to .{enable,disable}_streams() operations
jailuthra Oct 25, 2024
4258f14
drivers: media: arducam_64mp: Remove legacy embedded data support
naushir Mar 21, 2024
1f57232
media: uapi: v4l: subdev: Enable streams API
Sep 12, 2023
360f46f
drivers: media: unicam: Allow setting of unpacked formats
naushir Nov 19, 2024
737b505
drivers: media: unicam: Disable trigger mode operation
naushir Nov 19, 2024
ca95c84
media: bcm2835-unicam: Fix for possible dummy buffer overrun
naushir Nov 19, 2024
c48f001
media: bcm2835-unicam: Correctly handle FS + FE ISR condtion
naushir Nov 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions Documentation/admin-guide/media/raspberrypi-rp1-cfe.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
digraph board {
rankdir=TB
n00000001 [label="{{<port0> 0} | csi2\n/dev/v4l-subdev0 | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
n00000001:port1 -> n00000011 [style=dashed]
n00000001:port1 -> n00000007:port0
n00000001:port2 -> n00000015
n00000001:port2 -> n00000007:port0 [style=dashed]
n00000001:port3 -> n00000019 [style=dashed]
n00000001:port3 -> n00000007:port0 [style=dashed]
n00000001:port4 -> n0000001d [style=dashed]
n00000001:port4 -> n00000007:port0 [style=dashed]
n00000007 [label="{{<port0> 0 | <port1> 1} | pisp-fe\n/dev/v4l-subdev1 | {<port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
n00000007:port2 -> n00000021
n00000007:port3 -> n00000025 [style=dashed]
n00000007:port4 -> n00000029
n0000000d [label="{imx219 6-0010\n/dev/v4l-subdev2 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
n0000000d:port0 -> n00000001:port0 [style=bold]
n00000011 [label="rp1-cfe-csi2-ch0\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
n00000015 [label="rp1-cfe-csi2-ch1\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
n00000019 [label="rp1-cfe-csi2-ch2\n/dev/video2", shape=box, style=filled, fillcolor=yellow]
n0000001d [label="rp1-cfe-csi2-ch3\n/dev/video3", shape=box, style=filled, fillcolor=yellow]
n00000021 [label="rp1-cfe-fe-image0\n/dev/video4", shape=box, style=filled, fillcolor=yellow]
n00000025 [label="rp1-cfe-fe-image1\n/dev/video5", shape=box, style=filled, fillcolor=yellow]
n00000029 [label="rp1-cfe-fe-stats\n/dev/video6", shape=box, style=filled, fillcolor=yellow]
n0000002d [label="rp1-cfe-fe-config\n/dev/video7", shape=box, style=filled, fillcolor=yellow]
n0000002d -> n00000007:port1
}
78 changes: 78 additions & 0 deletions Documentation/admin-guide/media/raspberrypi-rp1-cfe.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
.. SPDX-License-Identifier: GPL-2.0

============================================
Raspberry Pi PiSP Camera Front End (rp1-cfe)
============================================

The PiSP Camera Front End
=========================

The PiSP Camera Front End (CFE) is a module which combines a CSI-2 receiver with
a simple ISP, called the Front End (FE).

The CFE has four DMA engines and can write frames from four separate streams
received from the CSI-2 to the memory. One of those streams can also be routed
directly to the FE, which can do minimal image processing, write two versions
(e.g. non-scaled and downscaled versions) of the received frames to memory and
provide statistics of the received frames.

The FE registers are documented in the `Raspberry Pi Image Signal Processor
(ISP) Specification document
<https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf>`_,
and example code for FE can be found in `libpisp
<https://github.com/raspberrypi/libpisp>`_.

The rp1-cfe driver
==================

The Raspberry Pi PiSP Camera Front End (rp1-cfe) driver is located under
drivers/media/platform/raspberrypi/rp1-cfe. It uses the `V4L2 API` to register
a number of video capture and output devices, the `V4L2 subdev API` to register
subdevices for the CSI-2 received and the FE that connects the video devices in
a single media graph realized using the `Media Controller (MC) API`.

The media topology registered by the `rp1-cfe` driver, in this particular
example connected to an imx219 sensor, is the following one:

.. _rp1-cfe-topology:

.. kernel-figure:: raspberrypi-rp1-cfe.dot
:alt: Diagram of an example media pipeline topology
:align: center

The media graph contains the following video device nodes:

- rp1-cfe-csi2-ch0: capture device for the first CSI-2 stream
- rp1-cfe-csi2-ch1: capture device for the second CSI-2 stream
- rp1-cfe-csi2-ch2: capture device for the third CSI-2 stream
- rp1-cfe-csi2-ch3: capture device for the fourth CSI-2 stream
- rp1-cfe-fe-image0: capture device for the first FE output
- rp1-cfe-fe-image1: capture device for the second FE output
- rp1-cfe-fe-stats: capture device for the FE statistics
- rp1-cfe-fe-config: output device for FE configuration

rp1-cfe-csi2-chX
----------------

The rp1-cfe-csi2-chX capture devices are normal V4L2 capture devices which
can be used to capture video frames or metadata received from the CSI-2.

rp1-cfe-fe-image0, rp1-cfe-fe-image1
------------------------------------

The rp1-cfe-fe-image0 and rp1-cfe-fe-image1 capture devices are used to write
the processed frames to memory.

rp1-cfe-fe-stats
----------------

The format of the FE statistics buffer is defined by
:c:type:`pisp_statistics` C structure and the meaning of each parameter is
described in the `PiSP specification` document.

rp1-cfe-fe-config
-----------------

The format of the FE configuration buffer is defined by
:c:type:`pisp_fe_config` C structure and the meaning of each parameter is
described in the `PiSP specification` document.
1 change: 1 addition & 0 deletions Documentation/admin-guide/media/v4l-drivers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Video4Linux (V4L) driver-specific documentation
raspberrypi-pisp-be
rcar-fdp1
rkisp1
raspberrypi-rp1-cfe
saa7134
si470x
si4713
Expand Down
93 changes: 93 additions & 0 deletions Documentation/devicetree/bindings/media/raspberrypi,rp1-cfe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/raspberrypi,rp1-cfe.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Raspberry Pi PiSP Camera Front End

maintainers:
- Tomi Valkeinen <[email protected]>
- Raspberry Pi Kernel Maintenance <[email protected]>

description: |
The Raspberry Pi PiSP Camera Front End is a module in Raspberrypi 5's RP1 I/O
controller, that contains:
- MIPI D-PHY
- MIPI CSI-2 receiver
- Simple image processor (called PiSP Front End, or FE)

The FE documentation is available at:
https://datasheets.raspberrypi.com/camera/raspberry-pi-image-signal-processor-specification.pdf

The PHY and CSI-2 receiver part have no public documentation.

properties:
compatible:
items:
- const: raspberrypi,rp1-cfe

reg:
items:
- description: CSI-2 registers
- description: D-PHY registers
- description: MIPI CFG (a simple top-level mux) registers
- description: FE registers

interrupts:
maxItems: 1

clocks:
maxItems: 1

port:
$ref: /schemas/graph.yaml#/$defs/port-base
additionalProperties: false
description: CSI-2 RX Port

properties:
endpoint:
$ref: video-interfaces.yaml#
unevaluatedProperties: false

properties:
data-lanes:
minItems: 1
maxItems: 4

required:
- data-lanes

required:
- compatible
- reg
- interrupts
- clocks

additionalProperties: false

examples:
- |
rp1 {
#address-cells = <2>;
#size-cells = <2>;

csi@110000 {
compatible = "raspberrypi,rp1-cfe";
reg = <0xc0 0x40110000 0x0 0x100>,
<0xc0 0x40114000 0x0 0x100>,
<0xc0 0x40120000 0x0 0x100>,
<0xc0 0x40124000 0x0 0x1000>;

interrupts = <42>;

clocks = <&rp1_clocks>;

port {
csi_ep: endpoint {
remote-endpoint = <&cam_endpoint>;
data-lanes = <1 2>;
};
};
};
};
Loading