devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Mark Watson <markus.c.watson@gmail.com>,
	robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] dt-bindings: misc: axi-fifo: Add binding for AXI-Stream FIFO
Date: Thu, 20 Jun 2024 08:49:14 +0200	[thread overview]
Message-ID: <e3190fef-3d33-42e5-926f-07d44a4d5f64@kernel.org> (raw)
In-Reply-To: <ZnOAgM+zacF6u1x7@laptop>

On 20/06/2024 03:06, Mark Watson wrote:
> This resolves a checkpatch warning in drivers/staging/axis-fifo
> regarding a missing devie-tree binding. The full warning is included
> below.
> 
> WARNING: DT compatible string "xlnx,axi-fifo-mm-s-4.1" appears
> un-documented -- check ./Documentation/devicetree/bindings/
> +       { .compatible = "xlnx,axi-fifo-mm-s-4.1", },

That's not needed. Drop above reasoning but instead say that you add new
bindings for foo bar (explain what is the hardware).

You did not test your code, so limited review follows.

There is a binding. Just grep for compatible. You might want to do
conversion but then:

Thank you for your patch. There are no DTS users of this binding, so
while such conversions are useful, they have significantly smaller
impact. In the future, please consider converting bindings from active
platforms (arm64 defconfig, arm multi_v7). This would have significantly
bigger impact.

See also:
https://lore.kernel.org/all/6552bcb8-e046-4882-91da-1094fff3d239@linaro.org/

> 
> Signed-off-by: Mark Watson <markus.c.watson@gmail.com>
> ---
>  .../bindings/misc/xlnx,axi-fifo-mm-s-4.1.yaml | 214 ++++++++++++++++++
>  1 file changed, 214 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s-4.1.yaml
> 
> diff --git a/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s-4.1.yaml b/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s-4.1.yaml
> new file mode 100644
> index 000000000000..cfb335752054
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/misc/xlnx,axi-fifo-mm-s-4.1.yaml
> @@ -0,0 +1,214 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/misc/xlnx,axi-fifo-mm-s-4.1.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Xilinx AXI-Stream FIFO v4.1 IP core
> +

Missing maintainers. Why would we care about hardware if there is no one
to interested in it?

> +description: |
> +  The Xilinx AXI-Stream FIFO v4.1 IP core has read and write AXI-Stream FIFOs,
> +  the contents of which can be accessed from the AXI4 memory-mapped interface.
> +  This is useful for transferring data from a processor into the FPGA fabric.
> +  The driver creates a character device that can be read/written to with
> +  standard open/read/write/close operations.
> +
> +  See Xilinx PG080 document for IP details.
> +
> +  Currently supports only store-forward mode with a 32-bit AXI4-Lite
> +  interface.
> +
> +  DOES NOT support:
> +    - cut-through mode
> +    - AXI4 (non-lite)
> +
> +properties:
> +  compatible:
> +    const: xlnx,axi-fifo-mm-s-4.1
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  interrupt-names:
> +    items:
> +      - const: interrupt

No, drop entire property.

> +
> +  interrupt-parent:
> +    $ref: /schemas/types.yaml#/definitions/phandle

Drop property.

> +
> +  xlnx,axi-str-rxd-protocol:
> +    const: XIL_AXI_STREAM_ETH_DATA
> +
> +  xlnx,axi-str-rxd-tdata-width:
> +    const: 0x20
> +
> +  xlnx,axi-str-txc-protocol:
> +    const: XIL_AXI_STREAM_ETH_CTRL
> +
> +  xlnx,axi-str-txc-tdata-width:
> +    const: 0x20
> +
> +  xlnx,axi-str-txd-protocol:
> +    const: XIL_AXI_STREAM_ETH_DATA
> +
> +  xlnx,axi-str-txd-tdata-width:
> +    const: 0x20

Drop all these.

> +
> +  xlnx,axis-tdest-width:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,axis-tid-width:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,axis-tuser-width:
> +    $ref: /schemas/types.yaml#/definitions/uint32

No clue what are these. Drop.

> +
> +  xlnx,data-interface-type:
> +    const: 0x0
> +
> +  xlnx,has-axis-tdest:
> +    const: 0x0
> +
> +  xlnx,has-axis-tid:
> +    const: 0x0
> +
> +  xlnx,has-axis-tkeep:
> +    const: 0x1
> +
> +  xlnx,has-axis-tstrb:
> +    const: 0x0
> +
> +  xlnx,has-axis-tuser:
> +    const: 0x0

Drop everything above.

> +
> +  xlnx,rx-fifo-depth:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,rx-fifo-pe-threshold:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,rx-fifo-pf-threshold:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,s-axi-id-width:
> +    const: 0x4
> +
> +  xlnx,s-axi4-data-width:
> +    const: 0x20
> +
> +  xlnx,select-xpm:
> +    const: 0x0
> +
> +  xlnx,tx-fifo-depth:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,tx-fifo-pe-threshold:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,tx-fifo-pf-threshold:
> +    $ref: /schemas/types.yaml#/definitions/uint32

No standard properties?

> +
> +  xlnx,use-rx-cut-through:
> +    const: 0x0
> +
> +  xlnx,use-rx-data:
> +    const: 0x1
> +
> +  xlnx,use-tx-ctrl:
> +    const: 0x0
> +
> +  xlnx,use-tx-cut-through:
> +    const: 0x0
> +
> +  xlnx,use-tx-data:
> +    const: 0x1
> +
> +  xlnx,tx-max-pkt-size:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +
> +  xlnx,rx-min-pkt-size:
> +    $ref: /schemas/types.yaml#/definitions/uint32

No, drop all these.


> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - interrupt-names
> +  - interrupt-parent
> +  - xlnx,axi-str-rxd-protocol
> +  - xlnx,axi-str-rxd-tdata-width
> +  - xlnx,axi-str-txc-protocol
> +  - xlnx,axi-str-txc-tdata-width
> +  - xlnx,axi-str-txd-protocol
> +  - xlnx,axi-str-txd-tdata-width
> +  - xlnx,axis-tdest-width
> +  - xlnx,axis-tid-width
> +  - xlnx,axis-tuser-width
> +  - xlnx,data-interface-type
> +  - xlnx,has-axis-tdest
> +  - xlnx,has-axis-tid
> +  - xlnx,has-axis-tkeep
> +  - xlnx,has-axis-tstrb
> +  - xlnx,has-axis-tuser
> +  - xlnx,rx-fifo-depth
> +  - xlnx,rx-fifo-pe-threshold
> +  - xlnx,rx-fifo-pf-threshold
> +  - xlnx,s-axi-id-width
> +  - xlnx,s-axi4-data-width
> +  - xlnx,select-xpm
> +  - xlnx,tx-fifo-depth
> +  - xlnx,tx-fifo-pe-threshold
> +  - xlnx,tx-fifo-pf-threshold
> +  - xlnx,use-rx-cut-through
> +  - xlnx,use-rx-data
> +  - xlnx,use-tx-ctrl
> +  - xlnx,use-tx-cut-through
> +  - xlnx,use-tx-data
> +  - xlnx,tx-max-pkt-size
> +  - xlnx,rx-min-pkt-size
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    axi_fifo_mm_s_0: axi_fifo_mm_s@43c00000 {

Drop label. No underscores in node names.


Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> +      compatible = "xlnx,axi-fifo-mm-s-4.1";
> +      interrupt-names = "interrupt";
> +      interrupt-parent = <&intc>;
> +      interrupts = <0 29 4>;

Use proper defines.


Best regards,
Krzysztof


      parent reply	other threads:[~2024-06-20  6:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-20  1:06 [PATCH] dt-bindings: misc: axi-fifo: Add binding for AXI-Stream FIFO Mark Watson
2024-06-20  2:22 ` Rob Herring (Arm)
2024-06-20  2:32 ` kernel test robot
2024-06-20  6:49 ` Krzysztof Kozlowski [this message]

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=e3190fef-3d33-42e5-926f-07d44a4d5f64@kernel.org \
    --to=krzk@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=markus.c.watson@gmail.com \
    --cc=robh@kernel.org \
    /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).