On Tue, Apr 28, 2026 at 12:16 PM Konrad Dybcio
<[email protected]> wrote:
>
> On 4/27/26 10:33 PM, Loic Poulain wrote:
> > On Mon, Apr 27, 2026 at 4:22 PM Konrad Dybcio
> > <[email protected]> wrote:
> >>
> >> On 4/27/26 2:43 PM, Loic Poulain wrote:
> >>> Add Devicetree binding documentation for the Qualcomm Camera Subsystem
> >>> Offline Processing Engine (OPE) found on platforms such as Agatti.
> >>> The OPE is a memory-to-memory image processing block which operates
> >>> on frames read from and written back to system memory.
> >>>
> >>> Signed-off-by: Loic Poulain <[email protected]>
> >>> ---
> >>
> >> [...]
> >>
> >>> +        clocks = <&gcc GCC_CAMSS_OPE_CLK>,
> >>> +                 <&gcc GCC_CAMSS_OPE_AHB_CLK>,
> >>> +                 <&gcc GCC_CAMSS_NRT_AXI_CLK>;
> >>
> >> Should the two AXI clocks be aggregated by camss-top instead?
> >>
> >> Otherwise we run the risk of the OPE driver setting a rate of A
> >> and another sub-device setting a rate of B
> >
> > On qcm2290, OPE appears to be the only consumer of the NRT AXI clock,
> > while the capture path (VFE/TFE) relies on the RT AXI clock. That
> > said, this may not always be the case and these clocks (AXI / NRT‑AXI
> > / RT‑AXI) seem like they could reasonably be managed at the
> > camss-bus/top level.
> >
> > The open question is how the NRT AXI clock should be enabled when
> > required? enabling them unconditionally (similar to other camss PM
> > clocks), introducing a dedicated CAMSS top‑level interface for voting,
> > or leveraging an existing framework to handle this?
>
> So, interconnect, or some internal, smaller version of it?

Downstream, there is a CPAS driver that handles these clocks in
conjunction with the internal CAMNOC block. Dmitry also mentioned the
existing icc_clock mechanism, but we likely need to investigate this
further to support proper dynamic scaling of the required clocks.
However, I don’t plan to address this as part of the current series,
as it would significantly increase its scope.

I believe the current approach is acceptable for now because:
- This NRT clock is required by this specific sub-block, but not by
all CAMSS sub-blocks (unlike, for example, camss-ahb), so referencing
it makes sense here.
- At the moment, the OPE only enables this clock without setting its
rate (i.e., it uses the default), so this should not conflict with
introducing a more complete scaling framework later.

Does this sound good?

Regards,
Loic

Reply via email to