devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org, Sakari Ailus <sakari.ailus@iki.fi>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Jacopo Mondi <jacopo@jmondi.org>,
	Xavier Roumegue <xavier.roumegue@oss.nxp.com>,
	linux-imx@nxp.com, kernel@pengutronix.de,
	devicetree@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Subject: Re: [PATCH v2 6/7] dt-bindings: media: Add i.MX8 ISI DT bindings
Date: Tue, 12 Jul 2022 14:49:06 +0200	[thread overview]
Message-ID: <3359e1bc-54c4-0b10-af9f-05e9f2fb2162@linaro.org> (raw)
In-Reply-To: <Ys1MKFknchDYKR/1@pendragon.ideasonboard.com>

On 12/07/2022 12:25, Laurent Pinchart wrote:
> Hi Krzysztof,
> 
> On Tue, Jul 12, 2022 at 09:49:45AM +0200, Krzysztof Kozlowski wrote:
>> On 12/07/2022 02:02, Laurent Pinchart wrote:
>>> The Image Sensing Interface (ISI) combines image processing pipelines
>>> with DMA engines to process and capture frames originating from a
>>> variety of sources. The inputs to the ISI go through Pixel Link
>>> interfaces, and their number and nature is SoC-dependent. They cover
>>> both capture interfaces (MIPI CSI-2 RX, HDMI RX) and memory inputs.
>>>
>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> ---
>>> Changes since v1:
>>>
>>> - Fix compatible string checks in conditional schema
>>> - Fix interrupts property handling
>>> ---
>>>  .../bindings/media/nxp,imx8-isi.yaml          | 148 ++++++++++++++++++
>>>  1 file changed, 148 insertions(+)
>>>  create mode 100644 Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml b/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
>>> new file mode 100644
>>> index 000000000000..390dfa03026b
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/media/nxp,imx8-isi.yaml
>>> @@ -0,0 +1,148 @@
>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/media/nxp,imx8-isi.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: i.MX8 Image Sensing Interface
>>> +
>>> +maintainers:
>>> +  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>> +
>>> +description: |
>>> +  The Image Sensing Interface (ISI) combines image processing pipelines with
>>> +  DMA engines to process and capture frames originating from a variety of
>>> +  sources. The inputs to the ISI go through Pixel Link interfaces, and their
>>> +  number and nature is SoC-dependent. They cover both capture interfaces (MIPI
>>> +  CSI-2 RX, HDMI RX, ...) and display engine outputs for writeback support.
>>> +
>>> +properties:
>>> +  compatible:
>>> +    enum:
>>> +      - fsl,imx8mn-isi
>>> +      - fsl,imx8mp-isi
>>> +
>>> +  reg:
>>> +    maxItems: 1
>>> +
>>> +  clocks:
>>> +    items:
>>> +      - description: The AXI clock
>>> +      - description: The APB clock
>>> +      # TODO: Check if the per-channel ipg_proc_clk clocks need to be specified
>>> +      # as well, in case some SoCs have the ability to control them separately.
>>> +      # This may be the case of the i.MX8[DQ]X(P)
>>> +
>>> +  clock-names:
>>> +    items:
>>> +      - const: axi
>>> +      - const: apb
>>> +
>>> +  fsl,blk-ctrl:
>>> +    $ref: /schemas/types.yaml#/definitions/phandle
>>> +    description:
>>> +      A phandle referencing the block control that contains the CSIS to ISI
>>> +      gasket.
>>> +
>>> +  interrupts: true
>>
>> Need generic constraints - min/maxItems.
> 
> I can't set maxItems here, as the value depends on the compatible
> string. It's set below as part of the "allOf". I could set minItems to
> 1, but I don't really see a point in doing so.

Of course you can, just like all other files could.

https://elixir.bootlin.com/linux/v5.19-rc6/source/Documentation/devicetree/bindings/clock/samsung,exynos7-clock.yaml#L57

> 
>>> +
>>> +  power-domains: true
>>
>> Ditto.
> 
> I'll fix this one.
> 
>>> +
>>> +  ports:
>>> +    $ref: /schemas/graph.yaml#/properties/ports
>>> +    description: |
>>> +      Ports represent the Pixel Link inputs to the ISI. Their number and
>>> +      assignment are model-dependent. Each port shall have a single endpoint.
>>> +
>>> +    patternProperties:
>>> +      "^port@[0-9]$":
>>> +        $ref: /schemas/graph.yaml#/properties/port
>>> +        unevaluatedProperties: false
>>> +
>>> +    unevaluatedProperties: false
>>
>> At least one port is always required?
> 
> That's a fair assumption I think. How would you express that ? There's
> no patternRequired as far as I know. Note that the device-dependent
> ports are described in the "allOf" section below, where "required" is
> set per device model.

required:
 - port@0

> 
>>> +
>>> +required:
>>> +  - compatible
>>> +  - reg
>>> +  - interrupts
>>> +  - clocks
>>> +  - clock-names
>>> +  - fsl,blk-ctrl
>>> +  - ports
>>> +
>>> +allOf:
>>> +  - if:
>>> +      properties:
>>> +        compatible:
>>> +          contains:
>>> +            const: fsl,imx8mn-isi
>>> +    then:
>>> +      properties:
>>> +        interrupts:
>>> +          maxItems: 1
>>> +        ports:
>>> +          properties:
>>> +            port@0:
>>> +              description: MIPI CSI-2 RX
>>> +          required:
>>> +            - port@0
>>> +
>>> +  - if:
>>> +      properties:
>>> +        compatible:
>>> +          contains:
>>> +            const: fsl,imx8mp-isi
>>> +    then:
>>> +      properties:
>>> +        interrupts:
>>> +          maxItems: 2
>>
>> You need to describe the items.
> 
> It's one interrupt per pipeline. Can I add the description to the
> generic interrupts property instead of documenting each item
> individually ? Something along the lines of
> 
>   interrupts:
>     description: Processing pipeline interrupts, one per pipeline
> 

This sounds good, thanks!


Best regards,
Krzysztof

  reply	other threads:[~2022-07-12 12:49 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20220712000251.13607-1-laurent.pinchart@ideasonboard.com>
2022-07-12  0:02 ` [PATCH v2 6/7] dt-bindings: media: Add i.MX8 ISI DT bindings Laurent Pinchart
2022-07-12  7:49   ` Krzysztof Kozlowski
2022-07-12 10:25     ` Laurent Pinchart
2022-07-12 12:49       ` Krzysztof Kozlowski [this message]
2022-07-12 14:26         ` Laurent Pinchart
2022-07-12 14:34           ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3359e1bc-54c4-0b10-af9f-05e9f2fb2162@linaro.org \
    --to=krzysztof.kozlowski@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jacopo@jmondi.org \
    --cc=kernel@pengutronix.de \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-imx@nxp.com \
    --cc=linux-media@vger.kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=sakari.ailus@iki.fi \
    --cc=xavier.roumegue@oss.nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).