linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Vadym Kochan <vadym.kochan@plvision.eu>,
	Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Andrew Lunn <andrew@lunn.ch>,
	Gregory Clement <gregory.clement@bootlin.com>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Elad Nachman <enachman@marvell.com>,
	Chris Packham <chris.packham@alliedtelesis.co.nz>
Subject: Re: [PATCH v5 1/2] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme
Date: Thu, 27 Oct 2022 15:50:25 +0200	[thread overview]
Message-ID: <20221027155025.7c04774a@xps-13> (raw)
In-Reply-To: <e937b059-4168-3bd4-b294-cbfff0519d1f@linaro.org>

Hi Krzysztof,

krzysztof.kozlowski@linaro.org wrote on Thu, 27 Oct 2022 09:24:24 -0400:

> On 27/10/2022 09:18, Miquel Raynal wrote:
> > Hi Vadym,
> >   
> >>>>> +patternProperties:
> >>>>> +  "^nand@[0-3]$":
> >>>>> +    type: object
> >>>>> +    properties:
> >>>>> +      reg:
> >>>>> +        minimum: 0
> >>>>> +        maximum: 3
> >>>>> +
> >>>>> +      nand-rb:
> >>>>> +        minimum: 0
> >>>>> +        maximum: 1
> >>>>> +
> >>>>> +      nand-ecc-strength:
> >>>>> +        enum: [1, 4, 8]
> >>>>> +
> >>>>> +      nand-on-flash-bbt: true
> >>>>> +
> >>>>> +      nand-ecc-mode: true
> >>>>> +
> >>>>> +      nand-ecc-algo:
> >>>>> +        description: |
> >>>>> +          This property is essentially useful when not using hardware ECC.
> >>>>> +          Howerver, it may be added when using hardware ECC for clarification
> >>>>> +          but will be ignored by the driver because ECC mode is chosen depending
> >>>>> +          on the page size and the strength required by the NAND chip.
> >>>>> +          This value may be overwritten with nand-ecc-strength property.
> >>>>> +
> >>>>> +      nand-ecc-step-size:
> >>>>> +        description: |
> >>>>> +          Marvell's NAND flash controller does use fixed strength
> >>>>> +          (1-bit for Hamming, 16-bit for BCH), so the actual step size
> >>>>> +          will shrink or grow in order to fit the required strength.
> >>>>> +          Step sizes are not completely random for all and follow certain
> >>>>> +          patterns described in AN-379, "Marvell SoC NFC ECC".
> >>>>> +
> >>>>> +      label:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/string
> >>>>> +
> >>>>> +      partitions:
> >>>>> +        type: object    
> >>>>
> >>>> That's not what I asked for. Like four times I asked you to add here
> >>>> unevaluatedProperties: false and I never said that ref to partition.yaml
> >>>> should be removed and you... instead remove that ref.
> >>>>
> >>>> You need to define here children and specify their ref.
> >>>>
> >>>> You must use unevaluatedProperties: false here. So this is fifth time I
> >>>> am writing this feedback.
> >>>>
> >>>>    
> >>>
> >>> It is a bit confusing that it is needed to define "partitions" and "label" rules particulary
> >>> in this nand controller instead of some common place like nand-chip.yaml, these properties
> >>> are common also for the other nand controllers.    
> >>
> >> No one speaks about label, I never commented about label, I think...
> >>
> >> If you think the property is really generic and every NAND controller
> >> bindings implement it, then feel free to include them there, in a
> >> separate patch. It sounds sensible, but I did not check other bindings.  
> > 
> > FYI, label is already defined in mtd/mtd.yaml.  
> 
> Which is not included here and in nand-controller.yaml

Maybe nand-chip.yaml should?

> > Partitions do not need to be defined in your binding, just don't put
> > any in your example and you'll be fine. These partitions are either
> > static and may be described in the DT (see
> > mtd/partition/partition.yaml) or there is some dynamic discovery
> > involved and a proper parser shall be referenced (parsers have their
> > own binding).  
> 
> I don't think this is correct. Basically you allow any node to be under
> partitions as there is no schema validating them (without compatibles).

Sorry if that was unclear, what I meant is: partitions should not be
defined in the bindings for Marvell NAND controller because they should
be defined somewhere else already.

NAND controller subnodes should define the storage devices (the
flashes themselves) connected to the controller. "nand-chip.yaml"
describes generic properties for these. Additional subnodes are allowed
and expected to be partitions (this is not enforced anywhere I think),
they should use one of the existing compatibles to define the parser.
The most common parser is named fixed-partitions and has its own
compatible. Every parser references partitions.yaml.

There are a few controller bindings however which reference
partition.yaml anyway, probably to make the examples validation work,
I'm not sure it should be done like that though:
https://elixir.bootlin.com/linux/v6.0/source/Documentation/devicetree/bindings/mtd/ti,gpmc-nand.yaml
https://elixir.bootlin.com/linux/v6.0/source/Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml

Thanks,
Miquèl

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-10-27 13:51 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-26 13:45 [PATCH v5 0/2] dt-bindings: mtd: marvell-nand: Add YAML scheme Vadym Kochan
2022-10-26 13:45 ` [PATCH v5 1/2] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme Vadym Kochan
2022-10-26 14:03   ` Krzysztof Kozlowski
2022-10-26 21:57     ` Vadym Kochan
2022-10-27 13:02       ` Krzysztof Kozlowski
2022-10-27 13:18         ` Miquel Raynal
2022-10-27 13:24           ` Krzysztof Kozlowski
2022-10-27 13:50             ` Miquel Raynal [this message]
2022-10-27 14:51               ` Krzysztof Kozlowski
2022-10-28  7:47                 ` Miquel Raynal
2022-10-28 11:31                   ` Krzysztof Kozlowski
2022-10-28 12:50                     ` Miquel Raynal
2022-10-31 12:29                       ` Vadym Kochan
2022-11-04 16:51                         ` Miquel Raynal
2022-10-26 13:45 ` [PATCH v5 2/2] arm64: dts: marvell: cp11x: Fix nand_controller node name according to YAML Vadym Kochan

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=20221027155025.7c04774a@xps-13 \
    --to=miquel.raynal@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=chris.packham@alliedtelesis.co.nz \
    --cc=devicetree@vger.kernel.org \
    --cc=enachman@marvell.com \
    --cc=gregory.clement@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=vadym.kochan@plvision.eu \
    --cc=vigneshr@ti.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).