Re: [PATCH v2 0/6] media: rockchip: add a driver for the rockchip camera interface (cif)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Michael and Laurent,

On Fri, Jan 10, 2025 at 09:48:04AM +0100, Michael Riesch wrote:
> Hi Laurent,
> 
> On 1/9/25 18:12, Laurent Pinchart wrote:
> > Hi Michael,
> > 
> > On Tue, Dec 17, 2024 at 04:55:12PM +0100, Michael Riesch wrote:
> >> [...]
> >> and refactor the whole thing. The resulting v2 of the series now adds a
> >> basic media controller centric V4L2 driver for the Rockchip CIF with
> >>  - support for the PX30 VIP (not tested, though, due to the lack of HW)
> >>  - support for the RK3568 VICAP DVP
> >>  - abstraction for the ping-pong scheme to allow for future extensions 
> >>
> >> However, several features are not yet addressed, such as
> >>  - support for the RK3568 MIPI CSI-2 receiver
> > 
> > We've discussed this previously on IRC, but I don't think the issue has
> > been raised on the list.
> > 
> > I'm puzzled by how this will work. As far as I understand, the RK3568
> > has a CSI-2 receiver with 4 data lanes and 2 clock lanes. I assume this
> > is used to support both 2x2 lanes and 1x4 lanes. Both the VICAP and ISP
> > sections of the TRM list CSI2 RX registers, but it's not clear how the
> > components are all connected. Does the ISP need to be part of the same
> > media graph ?
> 
> Well you are not the only one to be puzzled by this HW :-) I started to
> bring up the MIPI CSI-2 part and can describe the situation as I
> understand it. No claim for correctness or completeness, though.
> 
> Indeed, the RK3568 MIPI CSI-2 PHY (TRM Chapter 28) has 4 data lanes and
> 2 clock lanes. And indeed it is possible to attach one device (1x4) or
> two devices (2x2) to it. In the latter case the PHY is operated in split
> mode (and 1x4 would be the default full mode, then). The mode can be set
> in a GRF register.
> 
> The RK3568 features a MIPI CSI-2 host controller (TRM Chapter 27) that
> (apparently) is connected to the RK3568 VICAP but has its registers in a
> separate memory region. Right now I am trying to clean up the downstream
> V4L2 subdevice driver for this host controller, which shall be linked to
> the PHY using the "phys" DT property, and linked to the VICAP using DT
> endpoints. In the end, the media graph could look like
> 
>   CC1 (V4L2 subdev) --> RK3568 VICAP DVP (V4L2 device)
> 
>   CC2 (V4L2 subdev) --> RK3568 MIPI CSI-2 HOST (V4L2 subdev) -->
>   RK3568 VICAP MIPI (V4L2 device)
> 
> where CC denotes a companion chip, such as an image sensor or a video
> decoder. Note that there are two disjoint subgraphs in this topology.
> 
> As you already pointed out, the RK3568 ISP features its integrated MIPI
> CSI-2 host controller (as e.g. the RK3399 ISP does). This host
> controller is represented by a V4L2 subdevice as well, and the
> connection to the (same) MIPI PHY is established similarly. The
> difference may be that this controller has its registers within the ISP
> register block and is thus tightly coupled to the ISP (and the rkisp1
> driver).
> 
> Now I guess that in split mode the ISP MIPI path works completely
> independent and could be represented either by a separate media graph or
> by another disjoint subgraph in the same media graph.
> In split mode we need to define which host controller should handle
> which set of lanes (there are two sets, clock 1 + data 1 + data 2 as
> well as clock 2 + data 3 + data 4). Right now I am not sure how this
> should be accomplished, but then the split mode can also wait a bit.
> 
> However, as you pointed out in our IRC discussion, it is mentioned in
> TRM Chapter 12 that the RK3568 ISP can also process the DVP input. This
> still needs some verification, the rest of the paragraph is pure
> speculation. But maybe on simply needs to set the correct bits in
> CTRL_0000_VI_DPCL. Now this would mean that there should be one large
> media graph the includes the RK3568 VICAP as well as the RK3568 ISP,
> i.e., something along the lines
> 
>   CC0 (V4L2 subdev) --> RK3568 ISP MIPI CSI-2 HOST (V4L2 subdev)
>                             |
>                             v
>                      RK3568 ISP MUX (V4L2 subdev) --> RK3568 ISP...
>                             ^
>                             |
>   CC1 (V4L2 subdev) --> MAGIC V4L2 subdev? -->
>   RK3568 VICAP DVP (V4L2 device)
> 
>   CC2 (V4L2 subdev) --> RK3568 MIPI CSI-2 HOST (V4L2 subdev) -->
>   RK3568 VICAP MIPI (V4L2 device)
> 
> where the MAGIC V4L2 subdev should be a fan out of some sort?!
> 
> Now to answer your question: I guess it is going to be one media graph
> for RK3568 VICAP and RK3588 ISP. This shall be in perfect alignment with
> the RK3588, where VICAP and ISPs are clearly connected.


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux