On 19/10/2023 04:48, Ming Qian (OSS) wrote: > From: Ming Qian <ming.qian@xxxxxxx> > > This IP includes a jpeg wrapper and a jpeg engine, the wrapper is > working on descriptor based manner. It supports up to 4 slots, each slot > can have its own chained descriptors. Host won't configure the engine > directly, but fill some descriptors to encode or decode one jpeg > picture. Then configure the descriptors to certain slot register. The > jpeg wrapper will schedule between different slots. When some slot is > finished, the slot interrupt will be triggered. The purpose of slot is > that engine can be shared across multiple VMS and os. > > Currently, power domains and interrupts are enabled for all 4 slots, but > only one slot is used. There is no benefit in using more that one slot > from within the same OS, as the slots are scheduled in round-robin > manner and not executed in parallel. > > Use the property "nxp,slot" to assign a single slot, and just expose the > parts of the h/w for the assigned slot. For example, only put slot 1's > power-domains entry in the DT when slot 1 is assigned. If not specified, > 0 is used by default. > > Signed-off-by: Ming Qian <ming.qian@xxxxxxx> > --- > v5 > - improve commit message > - improve property description > > v4 > - improve commit message > - drop line making the property required, to avoid ABI break > > v3 > - add vender prefix, change property slot to nxp,slot > - add type for property slot > > v2 > - add a new property in bindings document > > .../bindings/media/nxp,imx8-jpeg.yaml | 46 +++++++++---------- > 1 file changed, 22 insertions(+), 24 deletions(-) > > diff --git a/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml b/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml > index 3d9d1db37040..0961856bdcab 100644 > --- a/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml > +++ b/Documentation/devicetree/bindings/media/nxp,imx8-jpeg.yaml > @@ -32,19 +32,27 @@ properties: > maxItems: 1 > > interrupts: > - description: | > - There are 4 slots available in the IP, which the driver may use > - If a certain slot is used, it should have an associated interrupt > - The interrupt with index i is assumed to be for slot i > - minItems: 1 # At least one slot is needed by the driver > - maxItems: 4 # The IP has 4 slots available for use > + description: > + Interrupt number for slot > + maxItems: 1 The device still has four interrupts, so we should allow up to four of them. One given OS might want to use two or all four slots. > > power-domains: > description: > List of phandle and PM domain specifier as documented in > Documentation/devicetree/bindings/power/power_domain.txt > - minItems: 2 # Wrapper and 1 slot > - maxItems: 5 # Wrapper and 4 slots > + minItems: 1 # Mixed power domain > + maxItems: 2 # Wrapper and 1 slot > + > + nxp,slot: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: > + Integer number of slot index used. This IP includes a jpeg wrapper, the > + wrapper is working on descriptor based manner. It supports up to 4 slots, > + each slot can have its own chained descriptors. The purpose is to share > + the jpeg engine across multiple VMS and os. We use this property to > + assign a single slot. If not specified, 0 is used by default. > + minimum: 0 > + maximum: 3 default: 0 Best regards, Krzysztof