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
next prev parent 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).