All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	"richard@nod.at" <richard@nod.at>,
	"vigneshr@ti.com" <vigneshr@ti.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org"
	<krzysztof.kozlowski+dt@linaro.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"andrew@lunn.ch" <andrew@lunn.ch>,
	"gregory.clement@bootlin.com" <gregory.clement@bootlin.com>,
	"sebastian.hesselbarth@gmail.com"
	<sebastian.hesselbarth@gmail.com>,
	"conor@kernel.org" <conor@kernel.org>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"enachman@marvell.com" <enachman@marvell.com>,
	Vadym Kochan <vadym.kochan@plvision.eu>
Subject: Re: [PATCH v8 3/3] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme
Date: Tue, 6 Jun 2023 09:48:55 +0200	[thread overview]
Message-ID: <20230606094855.1ab005eb@xps-13> (raw)
In-Reply-To: <9fc57052-5049-ed50-ca95-cfd1d0420dd9@alliedtelesis.co.nz>

Hi Chris,

Chris.Packham@alliedtelesis.co.nz wrote on Tue, 6 Jun 2023 04:38:01
+0000:

> On 6/06/23 08:44, Chris Packham wrote:
> >
> > On 4/06/23 21:26, Krzysztof Kozlowski wrote:  
> >> On 02/06/2023 01:06, Chris Packham wrote:  
> >>> Hi Krzystof,
> >>>
> >>> On 1/06/23 19:05, Krzysztof Kozlowski wrote:  
> >>>> On 01/06/2023 01:49, Chris Packham wrote:  
> >>>>> From: Vadym Kochan <vadym.kochan@plvision.eu>
> >>>>>
> >>>>> Switch the DT binding to a YAML schema to enable the DT validation.
> >>>>>
> >>>>> The text binding didn't mention it as a requirement but existing 
> >>>>> usage
> >>>>> has
> >>>>>
> >>>>>      compatible = "marvell,armada-8k-nand-controller",
> >>>>>                   "marvell,armada370-nand-controller";
> >>>>>
> >>>>> so the YAML allows this in addition to the individual compatible 
> >>>>> values.
> >>>>>
> >>>>> There was also an incorrect reference to dma-names being "rxtx" where
> >>>>> the driver and existing device trees actually use dma-names = 
> >>>>> "data" so
> >>>>> this is corrected in the conversion.
> >>>>>
> >>>>> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu>
> >>>>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> >>>>> ---
> >>>>>
> >>>>> Notes:
> >>>>>       Changes in v8:
> >>>>>       - Mark deprecated compatible values as such
> >>>>>       - Allow "marvell,armada-8k-nand-controller" without
> >>>>>         "marvell,armada370-nand-controller"
> >>>>>       - Make dma-names usage reflect reality
> >>>>>       - Update commit message
> >>>>>             Changes in v7:
> >>>>>       - Restore "label" and "partitions" properties (should be 
> >>>>> picked up via
> >>>>>         nand-controller.yaml but aren't)  
> >>>> What do you mean by "aren't"? They are not needed.  
> >>> (sorry I keep responding to snippets rather than putting all the 
> >>> replies
> >>> in one place. For posterity here's the same response I provided in a
> >>> separate message).
> >>>
> >>> I mean I simply cannot make it work and I'm out of ideas (I'm also 
> >>> in an
> >>> awkward timezone so it takes 24hrs for me to ask a question and get a
> >>> response which leads to me making guesses instead of waiting).
> >>>
> >>> nand-controller.yaml references nand-chip.yaml which references 
> >>> mtd.yaml
> >>> which defines the "label" and "partitions" property.
> >>>
> >>> I thought marvell,nand-controller.yaml could just say `$ref:
> >>> nand-controller.yaml` and it would mean I'd get all the definitions 
> >>> down
> >>> the chain but this doesn't seem to work the way I expect (or more 
> >>> likely
> >>> I'm not doing it right). I thought it might have something to do with
> >>> the different patternProperties pattern but even when I make that match
> >>> what is used in nand-controller.yaml it doesn't seem to pick up those
> >>> properties.  
> >> Then you are doing something different than all other bindings.  
> >
> > Not intentionally. I should probably check that the existing bindings 
> > actually work as expected.
> >
> > One thing that this has that the others don't is including "label" and 
> > "partitions" in the examples.
> >  
> >>>>>       - Add/restore nand-on-flash-bbt and nand-ecc-mode which 
> >>>>> aren't covered
> >>>>>         by nand-controller.yaml.
> >>>>>       - Use "unevalautedProperties: false"
> >>>>>       - Corrections for clock-names, dma-names, nand-rb and 
> >>>>> nand-ecc-strength
> >>>>>       - Add pxa3xx-nand-controller example
> >>>>>             Changes in v6:
> >>>>>       - remove properties covered by nand-controller.yaml
> >>>>>       - add example using armada-8k compatible
> >>>>>             earlier changes:
> >>>>>             v5:
> >>>>>          1) Get back "label" and "partitions" properties but without
> >>>>>             ref to the "partition.yaml" which was wrongly used.
> >>>>>                2) Add "additionalProperties: false" for nand@ 
> >>>>> because all possible
> >>>>>             properties are described.
> >>>>>             v4:
> >>>>>          1) Remove "label" and "partitions" properties
> >>>>>                2) Use 2 clocks for A7K/8K platform which is a 
> >>>>> requirement
> >>>>>             v3:
> >>>>>         1) Remove txt version from the MAINTAINERS list
> >>>>>               2) Use enum for some of compatible strings
> >>>>>               3) Drop:
> >>>>>               #address-cells
> >>>>>               #size-cells:
> >>>>>                  as they are inherited from the nand-controller.yaml
> >>>>>               4) Add restriction to use 2 clocks for A8K SoC
> >>>>>               5) Dropped description for clock-names and extend it 
> >>>>> with
> >>>>>            minItems: 1
> >>>>>               6) Drop description for "dmas"
> >>>>>               7) Use "unevalautedProperties: false"
> >>>>>               8) Drop quites from yaml refs.
> >>>>>               9) Use 4-space indentation for the example section
> >>>>>             v2:
> >>>>>         1) Fixed warning by yamllint with incorrect indentation 
> >>>>> for compatible list
> >>>>>
> >>>>>    .../bindings/mtd/marvell,nand-controller.yaml | 223 
> >>>>> ++++++++++++++++++
> >>>>>    .../devicetree/bindings/mtd/marvell-nand.txt  | 126 ----------
> >>>>>    MAINTAINERS                                   |   1 -
> >>>>>    3 files changed, 223 insertions(+), 127 deletions(-)
> >>>>>    create mode 100644 
> >>>>> Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>>    delete mode 100644 
> >>>>> Documentation/devicetree/bindings/mtd/marvell-nand.txt
> >>>>>
> >>>>> diff --git 
> >>>>> a/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml 
> >>>>> b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>> new file mode 100644
> >>>>> index 000000000000..433feb430555
> >>>>> --- /dev/null
> >>>>> +++ 
> >>>>> b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>> @@ -0,0 +1,223 @@
> >>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>>>> +%YAML 1.2
> >>>>> +---
> >>>>> +$id: 
> >>>>> http://scanmail.trustwave.com/?c=20988&d=yNj85IkMld8k0XBdA9CH4pQjE5peaXAdz-exk_Hdww&u=http%3a%2f%2fdevicetree%2eorg%2fschemas%2fmtd%2fmarvell%2cnand-controller%2eyaml%23
> >>>>> +$schema: 
> >>>>> http://scanmail.trustwave.com/?c=20988&d=yNj85IkMld8k0XBdA9CH4pQjE5peaXAdz-PkkPSLlg&u=http%3a%2f%2fdevicetree%2eorg%2fmeta-schemas%2fcore%2eyaml%23
> >>>>> +
> >>>>> +title: Marvell NAND Flash Controller (NFC)
> >>>>> +
> >>>>> +maintainers:
> >>>>> +  - Miquel Raynal <miquel.raynal@bootlin.com>
> >>>>> +
> >>>>> +properties:
> >>>>> +  compatible:
> >>>>> +    oneOf:
> >>>>> +      - items:
> >>>>> +          - const: marvell,armada-8k-nand-controller
> >>>>> +          - const: marvell,armada370-nand-controller
> >>>>> +      - enum:
> >>>>> +          - marvell,armada-8k-nand-controller
> >>>>> +          - marvell,armada370-nand-controller
> >>>>> +          - marvell,pxa3xx-nand-controller
> >>>>> +      - description: legacy bindings
> >>>>> +        deprecated: true
> >>>>> +        enum:
> >>>>> +          - marvell,armada-8k-nand
> >>>>> +          - marvell,armada370-nand
> >>>>> +          - marvell,pxa3xx-nand
> >>>>> +
> >>>>> +  reg:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  interrupts:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  clocks:
> >>>>> +    description:
> >>>>> +      Shall reference the NAND controller clocks, the second one is
> >>>>> +      is only needed for the Armada 7K/8K SoCs
> >>>>> +    minItems: 1
> >>>>> +    maxItems: 2
> >>>>> +
> >>>>> +  clock-names:
> >>>>> +    minItems: 1
> >>>>> +    items:
> >>>>> +      - const: core
> >>>>> +      - const: reg
> >>>>> +
> >>>>> +  dmas:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  dma-names:
> >>>>> +    items:
> >>>>> +      - const: data
> >>>>> +
> >>>>> +  marvell,system-controller:
> >>>>> +    $ref: /schemas/types.yaml#/definitions/phandle
> >>>>> +    description: Syscon node that handles NAND controller related 
> >>>>> registers
> >>>>> +
> >>>>> +patternProperties:
> >>>>> +  "^nand@[0-3]$":
> >>>>> +    type: object
> >>>>> +    unevaluatedProperties: false
> >>>>> +    properties:
> >>>>> +      reg:
> >>>>> +        minimum: 0
> >>>>> +        maximum: 3
> >>>>> +
> >>>>> +      nand-rb:
> >>>>> +        minItems: 1  
> >>>> Drop minItems.
> >>>>  
> >>>>> +        maxItems: 1  
> >>>> Didn't you have here minimum and maximum? I think I did not ask to
> >>>> remove them.  
> >>> I did but I couldn't figure out how to do minimum and maximum with an
> >>> array would the following be correct (note removing both minItems and
> >>> maxItems as dtb_check complains if I have maxItems and items).  
> >> items:
> >>    minimum: n
> >>    maximum: n
> >>    maxItems: n
> >>
> >> or
> >>
> >> items:
> >>   - minimum: n
> >>     maximum: n
> >>
> >> See for example Documentation/devicetree/bindings/arm/l2c2x0.yaml  
> > Thanks, so my suggestion below should be OK then.  
> >>>          nand-rb:
> >>>           items:
> >>>             - minimum: 0
> >>>               maximum: 1
> >>>  
> >>>>> +
> >>>>> +      nand-ecc-step-size:
> >>>>> +        const: 512
> >>>>> +
> >>>>> +      nand-ecc-strength:
> >>>>> +        enum: [1, 4, 8, 12, 16]
> >>>>> +
> >>>>> +      nand-on-flash-bbt:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +
> >>>>> +      nand-ecc-mode:
> >>>>> +        const: hw
> >>>>> +
> >>>>> +      label:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/string  
> >>>> Drop label
> >>>>  
> >>>>> +
> >>>>> +      partitions:
> >>>>> +        type: object  
> >>>> Drop partitions.  
> >>> This is the part I can't get to work. It should pick it up via
> >>> nand-controller.yaml but nothing I do seems to work.
> >>>  
> >>>>> +
> >>>>> +      marvell,nand-keep-config:
> >>>>> +        description: |
> >>>>> +          Orders the driver not to take the timings from the core 
> >>>>> and
> >>>>> +          leaving them completely untouched. Bootloader timings 
> >>>>> will then
> >>>>> +          be used.
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +
> >>>>> +      marvell,nand-enable-arbiter:
> >>>>> +        description: |
> >>>>> +          To enable the arbiter, all boards blindly used it,
> >>>>> +          this bit was set by the bootloader for many boards and 
> >>>>> even if
> >>>>> +          it is marked reserved in several datasheets, it might 
> >>>>> be needed to set
> >>>>> +          it (otherwise it is harmless).
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +        deprecated: true
> >>>>> +
> >>>>> +    additionalProperties: false  
> >>>> unevaluatedProperties: false  
> >>> It was hiding by '"^nand@[0-3]$":'. Should I move it here?  
> >> You cannot have both additionalProps and unevaluatedProps at the same
> >> time, so we do not talk about same thing or this was never working?  
> >
> > Hmm, I'm a little confused then. At various times I've been told to 
> > put 'additionalProperties: false' or 'unevaluatedProperties: false' 
> > (although never at the same time). I'm not sure when to use one or the 
> > other.
> >
> > From what I've been able to glean 'additionalProperties: true' 
> > indicates that the node is expected to have child nodes defined in a 
> > different schema so I would have thought 'additionalProperties: false' 
> > would be appropriate for a schema covering a leaf node. 
> > 'unevaluatedProperties: false' seems to enable stricter checking which 
> > makes sense when all the properties are described in the schema.  
> 
> So I think this might be the problem. If I look at qcom,nandc.yaml or 
> ingenic,nand.yaml which both have a partitions property in their 
> example. Neither have 'unevaluatedProperties: false' on the nand@... 
> subnode. If I add it sure enough I start getting complaints about the 
> 'partitions' node being unexpected.

Sorry if that was unclear, I think the whole logic around the yaml
files is to progressively constrain the descriptions, schema after
schema. IOW, in the marvell binding you should set
unevaluatedProperties: false for the NAND controller. What is inside
(NAND chips, partition container, partition parsers, "mtd" properties,
etc) will be handled by other files. Of course you can constrain a bit
what can/cannot be used inside these subnodes, but I think you don't
need to set unevaluatedProperties in these subnodes (the NAND chip in
this case, or even the partitions) because you already reference
nand-controller.yaml which references nand-chip.yaml, mtd.yaml,
partitions.yaml, etc. *they* will make the generic checks and hopefully
apply stricter checks, when deemed relevant.

Thanks,
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	"richard@nod.at" <richard@nod.at>,
	"vigneshr@ti.com" <vigneshr@ti.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org"
	<krzysztof.kozlowski+dt@linaro.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"andrew@lunn.ch" <andrew@lunn.ch>,
	"gregory.clement@bootlin.com" <gregory.clement@bootlin.com>,
	"sebastian.hesselbarth@gmail.com"
	<sebastian.hesselbarth@gmail.com>,
	"conor@kernel.org" <conor@kernel.org>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"enachman@marvell.com" <enachman@marvell.com>,
	Vadym Kochan <vadym.kochan@plvision.eu>
Subject: Re: [PATCH v8 3/3] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme
Date: Tue, 6 Jun 2023 09:48:55 +0200	[thread overview]
Message-ID: <20230606094855.1ab005eb@xps-13> (raw)
In-Reply-To: <9fc57052-5049-ed50-ca95-cfd1d0420dd9@alliedtelesis.co.nz>

Hi Chris,

Chris.Packham@alliedtelesis.co.nz wrote on Tue, 6 Jun 2023 04:38:01
+0000:

> On 6/06/23 08:44, Chris Packham wrote:
> >
> > On 4/06/23 21:26, Krzysztof Kozlowski wrote:  
> >> On 02/06/2023 01:06, Chris Packham wrote:  
> >>> Hi Krzystof,
> >>>
> >>> On 1/06/23 19:05, Krzysztof Kozlowski wrote:  
> >>>> On 01/06/2023 01:49, Chris Packham wrote:  
> >>>>> From: Vadym Kochan <vadym.kochan@plvision.eu>
> >>>>>
> >>>>> Switch the DT binding to a YAML schema to enable the DT validation.
> >>>>>
> >>>>> The text binding didn't mention it as a requirement but existing 
> >>>>> usage
> >>>>> has
> >>>>>
> >>>>>      compatible = "marvell,armada-8k-nand-controller",
> >>>>>                   "marvell,armada370-nand-controller";
> >>>>>
> >>>>> so the YAML allows this in addition to the individual compatible 
> >>>>> values.
> >>>>>
> >>>>> There was also an incorrect reference to dma-names being "rxtx" where
> >>>>> the driver and existing device trees actually use dma-names = 
> >>>>> "data" so
> >>>>> this is corrected in the conversion.
> >>>>>
> >>>>> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu>
> >>>>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> >>>>> ---
> >>>>>
> >>>>> Notes:
> >>>>>       Changes in v8:
> >>>>>       - Mark deprecated compatible values as such
> >>>>>       - Allow "marvell,armada-8k-nand-controller" without
> >>>>>         "marvell,armada370-nand-controller"
> >>>>>       - Make dma-names usage reflect reality
> >>>>>       - Update commit message
> >>>>>             Changes in v7:
> >>>>>       - Restore "label" and "partitions" properties (should be 
> >>>>> picked up via
> >>>>>         nand-controller.yaml but aren't)  
> >>>> What do you mean by "aren't"? They are not needed.  
> >>> (sorry I keep responding to snippets rather than putting all the 
> >>> replies
> >>> in one place. For posterity here's the same response I provided in a
> >>> separate message).
> >>>
> >>> I mean I simply cannot make it work and I'm out of ideas (I'm also 
> >>> in an
> >>> awkward timezone so it takes 24hrs for me to ask a question and get a
> >>> response which leads to me making guesses instead of waiting).
> >>>
> >>> nand-controller.yaml references nand-chip.yaml which references 
> >>> mtd.yaml
> >>> which defines the "label" and "partitions" property.
> >>>
> >>> I thought marvell,nand-controller.yaml could just say `$ref:
> >>> nand-controller.yaml` and it would mean I'd get all the definitions 
> >>> down
> >>> the chain but this doesn't seem to work the way I expect (or more 
> >>> likely
> >>> I'm not doing it right). I thought it might have something to do with
> >>> the different patternProperties pattern but even when I make that match
> >>> what is used in nand-controller.yaml it doesn't seem to pick up those
> >>> properties.  
> >> Then you are doing something different than all other bindings.  
> >
> > Not intentionally. I should probably check that the existing bindings 
> > actually work as expected.
> >
> > One thing that this has that the others don't is including "label" and 
> > "partitions" in the examples.
> >  
> >>>>>       - Add/restore nand-on-flash-bbt and nand-ecc-mode which 
> >>>>> aren't covered
> >>>>>         by nand-controller.yaml.
> >>>>>       - Use "unevalautedProperties: false"
> >>>>>       - Corrections for clock-names, dma-names, nand-rb and 
> >>>>> nand-ecc-strength
> >>>>>       - Add pxa3xx-nand-controller example
> >>>>>             Changes in v6:
> >>>>>       - remove properties covered by nand-controller.yaml
> >>>>>       - add example using armada-8k compatible
> >>>>>             earlier changes:
> >>>>>             v5:
> >>>>>          1) Get back "label" and "partitions" properties but without
> >>>>>             ref to the "partition.yaml" which was wrongly used.
> >>>>>                2) Add "additionalProperties: false" for nand@ 
> >>>>> because all possible
> >>>>>             properties are described.
> >>>>>             v4:
> >>>>>          1) Remove "label" and "partitions" properties
> >>>>>                2) Use 2 clocks for A7K/8K platform which is a 
> >>>>> requirement
> >>>>>             v3:
> >>>>>         1) Remove txt version from the MAINTAINERS list
> >>>>>               2) Use enum for some of compatible strings
> >>>>>               3) Drop:
> >>>>>               #address-cells
> >>>>>               #size-cells:
> >>>>>                  as they are inherited from the nand-controller.yaml
> >>>>>               4) Add restriction to use 2 clocks for A8K SoC
> >>>>>               5) Dropped description for clock-names and extend it 
> >>>>> with
> >>>>>            minItems: 1
> >>>>>               6) Drop description for "dmas"
> >>>>>               7) Use "unevalautedProperties: false"
> >>>>>               8) Drop quites from yaml refs.
> >>>>>               9) Use 4-space indentation for the example section
> >>>>>             v2:
> >>>>>         1) Fixed warning by yamllint with incorrect indentation 
> >>>>> for compatible list
> >>>>>
> >>>>>    .../bindings/mtd/marvell,nand-controller.yaml | 223 
> >>>>> ++++++++++++++++++
> >>>>>    .../devicetree/bindings/mtd/marvell-nand.txt  | 126 ----------
> >>>>>    MAINTAINERS                                   |   1 -
> >>>>>    3 files changed, 223 insertions(+), 127 deletions(-)
> >>>>>    create mode 100644 
> >>>>> Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>>    delete mode 100644 
> >>>>> Documentation/devicetree/bindings/mtd/marvell-nand.txt
> >>>>>
> >>>>> diff --git 
> >>>>> a/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml 
> >>>>> b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>> new file mode 100644
> >>>>> index 000000000000..433feb430555
> >>>>> --- /dev/null
> >>>>> +++ 
> >>>>> b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>> @@ -0,0 +1,223 @@
> >>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>>>> +%YAML 1.2
> >>>>> +---
> >>>>> +$id: 
> >>>>> http://scanmail.trustwave.com/?c=20988&d=yNj85IkMld8k0XBdA9CH4pQjE5peaXAdz-exk_Hdww&u=http%3a%2f%2fdevicetree%2eorg%2fschemas%2fmtd%2fmarvell%2cnand-controller%2eyaml%23
> >>>>> +$schema: 
> >>>>> http://scanmail.trustwave.com/?c=20988&d=yNj85IkMld8k0XBdA9CH4pQjE5peaXAdz-PkkPSLlg&u=http%3a%2f%2fdevicetree%2eorg%2fmeta-schemas%2fcore%2eyaml%23
> >>>>> +
> >>>>> +title: Marvell NAND Flash Controller (NFC)
> >>>>> +
> >>>>> +maintainers:
> >>>>> +  - Miquel Raynal <miquel.raynal@bootlin.com>
> >>>>> +
> >>>>> +properties:
> >>>>> +  compatible:
> >>>>> +    oneOf:
> >>>>> +      - items:
> >>>>> +          - const: marvell,armada-8k-nand-controller
> >>>>> +          - const: marvell,armada370-nand-controller
> >>>>> +      - enum:
> >>>>> +          - marvell,armada-8k-nand-controller
> >>>>> +          - marvell,armada370-nand-controller
> >>>>> +          - marvell,pxa3xx-nand-controller
> >>>>> +      - description: legacy bindings
> >>>>> +        deprecated: true
> >>>>> +        enum:
> >>>>> +          - marvell,armada-8k-nand
> >>>>> +          - marvell,armada370-nand
> >>>>> +          - marvell,pxa3xx-nand
> >>>>> +
> >>>>> +  reg:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  interrupts:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  clocks:
> >>>>> +    description:
> >>>>> +      Shall reference the NAND controller clocks, the second one is
> >>>>> +      is only needed for the Armada 7K/8K SoCs
> >>>>> +    minItems: 1
> >>>>> +    maxItems: 2
> >>>>> +
> >>>>> +  clock-names:
> >>>>> +    minItems: 1
> >>>>> +    items:
> >>>>> +      - const: core
> >>>>> +      - const: reg
> >>>>> +
> >>>>> +  dmas:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  dma-names:
> >>>>> +    items:
> >>>>> +      - const: data
> >>>>> +
> >>>>> +  marvell,system-controller:
> >>>>> +    $ref: /schemas/types.yaml#/definitions/phandle
> >>>>> +    description: Syscon node that handles NAND controller related 
> >>>>> registers
> >>>>> +
> >>>>> +patternProperties:
> >>>>> +  "^nand@[0-3]$":
> >>>>> +    type: object
> >>>>> +    unevaluatedProperties: false
> >>>>> +    properties:
> >>>>> +      reg:
> >>>>> +        minimum: 0
> >>>>> +        maximum: 3
> >>>>> +
> >>>>> +      nand-rb:
> >>>>> +        minItems: 1  
> >>>> Drop minItems.
> >>>>  
> >>>>> +        maxItems: 1  
> >>>> Didn't you have here minimum and maximum? I think I did not ask to
> >>>> remove them.  
> >>> I did but I couldn't figure out how to do minimum and maximum with an
> >>> array would the following be correct (note removing both minItems and
> >>> maxItems as dtb_check complains if I have maxItems and items).  
> >> items:
> >>    minimum: n
> >>    maximum: n
> >>    maxItems: n
> >>
> >> or
> >>
> >> items:
> >>   - minimum: n
> >>     maximum: n
> >>
> >> See for example Documentation/devicetree/bindings/arm/l2c2x0.yaml  
> > Thanks, so my suggestion below should be OK then.  
> >>>          nand-rb:
> >>>           items:
> >>>             - minimum: 0
> >>>               maximum: 1
> >>>  
> >>>>> +
> >>>>> +      nand-ecc-step-size:
> >>>>> +        const: 512
> >>>>> +
> >>>>> +      nand-ecc-strength:
> >>>>> +        enum: [1, 4, 8, 12, 16]
> >>>>> +
> >>>>> +      nand-on-flash-bbt:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +
> >>>>> +      nand-ecc-mode:
> >>>>> +        const: hw
> >>>>> +
> >>>>> +      label:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/string  
> >>>> Drop label
> >>>>  
> >>>>> +
> >>>>> +      partitions:
> >>>>> +        type: object  
> >>>> Drop partitions.  
> >>> This is the part I can't get to work. It should pick it up via
> >>> nand-controller.yaml but nothing I do seems to work.
> >>>  
> >>>>> +
> >>>>> +      marvell,nand-keep-config:
> >>>>> +        description: |
> >>>>> +          Orders the driver not to take the timings from the core 
> >>>>> and
> >>>>> +          leaving them completely untouched. Bootloader timings 
> >>>>> will then
> >>>>> +          be used.
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +
> >>>>> +      marvell,nand-enable-arbiter:
> >>>>> +        description: |
> >>>>> +          To enable the arbiter, all boards blindly used it,
> >>>>> +          this bit was set by the bootloader for many boards and 
> >>>>> even if
> >>>>> +          it is marked reserved in several datasheets, it might 
> >>>>> be needed to set
> >>>>> +          it (otherwise it is harmless).
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +        deprecated: true
> >>>>> +
> >>>>> +    additionalProperties: false  
> >>>> unevaluatedProperties: false  
> >>> It was hiding by '"^nand@[0-3]$":'. Should I move it here?  
> >> You cannot have both additionalProps and unevaluatedProps at the same
> >> time, so we do not talk about same thing or this was never working?  
> >
> > Hmm, I'm a little confused then. At various times I've been told to 
> > put 'additionalProperties: false' or 'unevaluatedProperties: false' 
> > (although never at the same time). I'm not sure when to use one or the 
> > other.
> >
> > From what I've been able to glean 'additionalProperties: true' 
> > indicates that the node is expected to have child nodes defined in a 
> > different schema so I would have thought 'additionalProperties: false' 
> > would be appropriate for a schema covering a leaf node. 
> > 'unevaluatedProperties: false' seems to enable stricter checking which 
> > makes sense when all the properties are described in the schema.  
> 
> So I think this might be the problem. If I look at qcom,nandc.yaml or 
> ingenic,nand.yaml which both have a partitions property in their 
> example. Neither have 'unevaluatedProperties: false' on the nand@... 
> subnode. If I add it sure enough I start getting complaints about the 
> 'partitions' node being unexpected.

Sorry if that was unclear, I think the whole logic around the yaml
files is to progressively constrain the descriptions, schema after
schema. IOW, in the marvell binding you should set
unevaluatedProperties: false for the NAND controller. What is inside
(NAND chips, partition container, partition parsers, "mtd" properties,
etc) will be handled by other files. Of course you can constrain a bit
what can/cannot be used inside these subnodes, but I think you don't
need to set unevaluatedProperties in these subnodes (the NAND chip in
this case, or even the partitions) because you already reference
nand-controller.yaml which references nand-chip.yaml, mtd.yaml,
partitions.yaml, etc. *they* will make the generic checks and hopefully
apply stricter checks, when deemed relevant.

Thanks,
Miquèl

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

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	"richard@nod.at" <richard@nod.at>,
	"vigneshr@ti.com" <vigneshr@ti.com>,
	"robh+dt@kernel.org" <robh+dt@kernel.org>,
	"krzysztof.kozlowski+dt@linaro.org" 
	<krzysztof.kozlowski+dt@linaro.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"andrew@lunn.ch" <andrew@lunn.ch>,
	"gregory.clement@bootlin.com" <gregory.clement@bootlin.com>,
	"sebastian.hesselbarth@gmail.com"
	<sebastian.hesselbarth@gmail.com>,
	"conor@kernel.org" <conor@kernel.org>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"enachman@marvell.com" <enachman@marvell.com>,
	Vadym Kochan <vadym.kochan@plvision.eu>
Subject: Re: [PATCH v8 3/3] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme
Date: Tue, 6 Jun 2023 09:48:55 +0200	[thread overview]
Message-ID: <20230606094855.1ab005eb@xps-13> (raw)
In-Reply-To: <9fc57052-5049-ed50-ca95-cfd1d0420dd9@alliedtelesis.co.nz>

Hi Chris,

Chris.Packham@alliedtelesis.co.nz wrote on Tue, 6 Jun 2023 04:38:01
+0000:

> On 6/06/23 08:44, Chris Packham wrote:
> >
> > On 4/06/23 21:26, Krzysztof Kozlowski wrote:  
> >> On 02/06/2023 01:06, Chris Packham wrote:  
> >>> Hi Krzystof,
> >>>
> >>> On 1/06/23 19:05, Krzysztof Kozlowski wrote:  
> >>>> On 01/06/2023 01:49, Chris Packham wrote:  
> >>>>> From: Vadym Kochan <vadym.kochan@plvision.eu>
> >>>>>
> >>>>> Switch the DT binding to a YAML schema to enable the DT validation.
> >>>>>
> >>>>> The text binding didn't mention it as a requirement but existing 
> >>>>> usage
> >>>>> has
> >>>>>
> >>>>>      compatible = "marvell,armada-8k-nand-controller",
> >>>>>                   "marvell,armada370-nand-controller";
> >>>>>
> >>>>> so the YAML allows this in addition to the individual compatible 
> >>>>> values.
> >>>>>
> >>>>> There was also an incorrect reference to dma-names being "rxtx" where
> >>>>> the driver and existing device trees actually use dma-names = 
> >>>>> "data" so
> >>>>> this is corrected in the conversion.
> >>>>>
> >>>>> Signed-off-by: Vadym Kochan <vadym.kochan@plvision.eu>
> >>>>> Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> >>>>> ---
> >>>>>
> >>>>> Notes:
> >>>>>       Changes in v8:
> >>>>>       - Mark deprecated compatible values as such
> >>>>>       - Allow "marvell,armada-8k-nand-controller" without
> >>>>>         "marvell,armada370-nand-controller"
> >>>>>       - Make dma-names usage reflect reality
> >>>>>       - Update commit message
> >>>>>             Changes in v7:
> >>>>>       - Restore "label" and "partitions" properties (should be 
> >>>>> picked up via
> >>>>>         nand-controller.yaml but aren't)  
> >>>> What do you mean by "aren't"? They are not needed.  
> >>> (sorry I keep responding to snippets rather than putting all the 
> >>> replies
> >>> in one place. For posterity here's the same response I provided in a
> >>> separate message).
> >>>
> >>> I mean I simply cannot make it work and I'm out of ideas (I'm also 
> >>> in an
> >>> awkward timezone so it takes 24hrs for me to ask a question and get a
> >>> response which leads to me making guesses instead of waiting).
> >>>
> >>> nand-controller.yaml references nand-chip.yaml which references 
> >>> mtd.yaml
> >>> which defines the "label" and "partitions" property.
> >>>
> >>> I thought marvell,nand-controller.yaml could just say `$ref:
> >>> nand-controller.yaml` and it would mean I'd get all the definitions 
> >>> down
> >>> the chain but this doesn't seem to work the way I expect (or more 
> >>> likely
> >>> I'm not doing it right). I thought it might have something to do with
> >>> the different patternProperties pattern but even when I make that match
> >>> what is used in nand-controller.yaml it doesn't seem to pick up those
> >>> properties.  
> >> Then you are doing something different than all other bindings.  
> >
> > Not intentionally. I should probably check that the existing bindings 
> > actually work as expected.
> >
> > One thing that this has that the others don't is including "label" and 
> > "partitions" in the examples.
> >  
> >>>>>       - Add/restore nand-on-flash-bbt and nand-ecc-mode which 
> >>>>> aren't covered
> >>>>>         by nand-controller.yaml.
> >>>>>       - Use "unevalautedProperties: false"
> >>>>>       - Corrections for clock-names, dma-names, nand-rb and 
> >>>>> nand-ecc-strength
> >>>>>       - Add pxa3xx-nand-controller example
> >>>>>             Changes in v6:
> >>>>>       - remove properties covered by nand-controller.yaml
> >>>>>       - add example using armada-8k compatible
> >>>>>             earlier changes:
> >>>>>             v5:
> >>>>>          1) Get back "label" and "partitions" properties but without
> >>>>>             ref to the "partition.yaml" which was wrongly used.
> >>>>>                2) Add "additionalProperties: false" for nand@ 
> >>>>> because all possible
> >>>>>             properties are described.
> >>>>>             v4:
> >>>>>          1) Remove "label" and "partitions" properties
> >>>>>                2) Use 2 clocks for A7K/8K platform which is a 
> >>>>> requirement
> >>>>>             v3:
> >>>>>         1) Remove txt version from the MAINTAINERS list
> >>>>>               2) Use enum for some of compatible strings
> >>>>>               3) Drop:
> >>>>>               #address-cells
> >>>>>               #size-cells:
> >>>>>                  as they are inherited from the nand-controller.yaml
> >>>>>               4) Add restriction to use 2 clocks for A8K SoC
> >>>>>               5) Dropped description for clock-names and extend it 
> >>>>> with
> >>>>>            minItems: 1
> >>>>>               6) Drop description for "dmas"
> >>>>>               7) Use "unevalautedProperties: false"
> >>>>>               8) Drop quites from yaml refs.
> >>>>>               9) Use 4-space indentation for the example section
> >>>>>             v2:
> >>>>>         1) Fixed warning by yamllint with incorrect indentation 
> >>>>> for compatible list
> >>>>>
> >>>>>    .../bindings/mtd/marvell,nand-controller.yaml | 223 
> >>>>> ++++++++++++++++++
> >>>>>    .../devicetree/bindings/mtd/marvell-nand.txt  | 126 ----------
> >>>>>    MAINTAINERS                                   |   1 -
> >>>>>    3 files changed, 223 insertions(+), 127 deletions(-)
> >>>>>    create mode 100644 
> >>>>> Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>>    delete mode 100644 
> >>>>> Documentation/devicetree/bindings/mtd/marvell-nand.txt
> >>>>>
> >>>>> diff --git 
> >>>>> a/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml 
> >>>>> b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>> new file mode 100644
> >>>>> index 000000000000..433feb430555
> >>>>> --- /dev/null
> >>>>> +++ 
> >>>>> b/Documentation/devicetree/bindings/mtd/marvell,nand-controller.yaml
> >>>>> @@ -0,0 +1,223 @@
> >>>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> >>>>> +%YAML 1.2
> >>>>> +---
> >>>>> +$id: 
> >>>>> http://scanmail.trustwave.com/?c=20988&d=yNj85IkMld8k0XBdA9CH4pQjE5peaXAdz-exk_Hdww&u=http%3a%2f%2fdevicetree%2eorg%2fschemas%2fmtd%2fmarvell%2cnand-controller%2eyaml%23
> >>>>> +$schema: 
> >>>>> http://scanmail.trustwave.com/?c=20988&d=yNj85IkMld8k0XBdA9CH4pQjE5peaXAdz-PkkPSLlg&u=http%3a%2f%2fdevicetree%2eorg%2fmeta-schemas%2fcore%2eyaml%23
> >>>>> +
> >>>>> +title: Marvell NAND Flash Controller (NFC)
> >>>>> +
> >>>>> +maintainers:
> >>>>> +  - Miquel Raynal <miquel.raynal@bootlin.com>
> >>>>> +
> >>>>> +properties:
> >>>>> +  compatible:
> >>>>> +    oneOf:
> >>>>> +      - items:
> >>>>> +          - const: marvell,armada-8k-nand-controller
> >>>>> +          - const: marvell,armada370-nand-controller
> >>>>> +      - enum:
> >>>>> +          - marvell,armada-8k-nand-controller
> >>>>> +          - marvell,armada370-nand-controller
> >>>>> +          - marvell,pxa3xx-nand-controller
> >>>>> +      - description: legacy bindings
> >>>>> +        deprecated: true
> >>>>> +        enum:
> >>>>> +          - marvell,armada-8k-nand
> >>>>> +          - marvell,armada370-nand
> >>>>> +          - marvell,pxa3xx-nand
> >>>>> +
> >>>>> +  reg:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  interrupts:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  clocks:
> >>>>> +    description:
> >>>>> +      Shall reference the NAND controller clocks, the second one is
> >>>>> +      is only needed for the Armada 7K/8K SoCs
> >>>>> +    minItems: 1
> >>>>> +    maxItems: 2
> >>>>> +
> >>>>> +  clock-names:
> >>>>> +    minItems: 1
> >>>>> +    items:
> >>>>> +      - const: core
> >>>>> +      - const: reg
> >>>>> +
> >>>>> +  dmas:
> >>>>> +    maxItems: 1
> >>>>> +
> >>>>> +  dma-names:
> >>>>> +    items:
> >>>>> +      - const: data
> >>>>> +
> >>>>> +  marvell,system-controller:
> >>>>> +    $ref: /schemas/types.yaml#/definitions/phandle
> >>>>> +    description: Syscon node that handles NAND controller related 
> >>>>> registers
> >>>>> +
> >>>>> +patternProperties:
> >>>>> +  "^nand@[0-3]$":
> >>>>> +    type: object
> >>>>> +    unevaluatedProperties: false
> >>>>> +    properties:
> >>>>> +      reg:
> >>>>> +        minimum: 0
> >>>>> +        maximum: 3
> >>>>> +
> >>>>> +      nand-rb:
> >>>>> +        minItems: 1  
> >>>> Drop minItems.
> >>>>  
> >>>>> +        maxItems: 1  
> >>>> Didn't you have here minimum and maximum? I think I did not ask to
> >>>> remove them.  
> >>> I did but I couldn't figure out how to do minimum and maximum with an
> >>> array would the following be correct (note removing both minItems and
> >>> maxItems as dtb_check complains if I have maxItems and items).  
> >> items:
> >>    minimum: n
> >>    maximum: n
> >>    maxItems: n
> >>
> >> or
> >>
> >> items:
> >>   - minimum: n
> >>     maximum: n
> >>
> >> See for example Documentation/devicetree/bindings/arm/l2c2x0.yaml  
> > Thanks, so my suggestion below should be OK then.  
> >>>          nand-rb:
> >>>           items:
> >>>             - minimum: 0
> >>>               maximum: 1
> >>>  
> >>>>> +
> >>>>> +      nand-ecc-step-size:
> >>>>> +        const: 512
> >>>>> +
> >>>>> +      nand-ecc-strength:
> >>>>> +        enum: [1, 4, 8, 12, 16]
> >>>>> +
> >>>>> +      nand-on-flash-bbt:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +
> >>>>> +      nand-ecc-mode:
> >>>>> +        const: hw
> >>>>> +
> >>>>> +      label:
> >>>>> +        $ref: /schemas/types.yaml#/definitions/string  
> >>>> Drop label
> >>>>  
> >>>>> +
> >>>>> +      partitions:
> >>>>> +        type: object  
> >>>> Drop partitions.  
> >>> This is the part I can't get to work. It should pick it up via
> >>> nand-controller.yaml but nothing I do seems to work.
> >>>  
> >>>>> +
> >>>>> +      marvell,nand-keep-config:
> >>>>> +        description: |
> >>>>> +          Orders the driver not to take the timings from the core 
> >>>>> and
> >>>>> +          leaving them completely untouched. Bootloader timings 
> >>>>> will then
> >>>>> +          be used.
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +
> >>>>> +      marvell,nand-enable-arbiter:
> >>>>> +        description: |
> >>>>> +          To enable the arbiter, all boards blindly used it,
> >>>>> +          this bit was set by the bootloader for many boards and 
> >>>>> even if
> >>>>> +          it is marked reserved in several datasheets, it might 
> >>>>> be needed to set
> >>>>> +          it (otherwise it is harmless).
> >>>>> +        $ref: /schemas/types.yaml#/definitions/flag
> >>>>> +        deprecated: true
> >>>>> +
> >>>>> +    additionalProperties: false  
> >>>> unevaluatedProperties: false  
> >>> It was hiding by '"^nand@[0-3]$":'. Should I move it here?  
> >> You cannot have both additionalProps and unevaluatedProps at the same
> >> time, so we do not talk about same thing or this was never working?  
> >
> > Hmm, I'm a little confused then. At various times I've been told to 
> > put 'additionalProperties: false' or 'unevaluatedProperties: false' 
> > (although never at the same time). I'm not sure when to use one or the 
> > other.
> >
> > From what I've been able to glean 'additionalProperties: true' 
> > indicates that the node is expected to have child nodes defined in a 
> > different schema so I would have thought 'additionalProperties: false' 
> > would be appropriate for a schema covering a leaf node. 
> > 'unevaluatedProperties: false' seems to enable stricter checking which 
> > makes sense when all the properties are described in the schema.  
> 
> So I think this might be the problem. If I look at qcom,nandc.yaml or 
> ingenic,nand.yaml which both have a partitions property in their 
> example. Neither have 'unevaluatedProperties: false' on the nand@... 
> subnode. If I add it sure enough I start getting complaints about the 
> 'partitions' node being unexpected.

Sorry if that was unclear, I think the whole logic around the yaml
files is to progressively constrain the descriptions, schema after
schema. IOW, in the marvell binding you should set
unevaluatedProperties: false for the NAND controller. What is inside
(NAND chips, partition container, partition parsers, "mtd" properties,
etc) will be handled by other files. Of course you can constrain a bit
what can/cannot be used inside these subnodes, but I think you don't
need to set unevaluatedProperties in these subnodes (the NAND chip in
this case, or even the partitions) because you already reference
nand-controller.yaml which references nand-chip.yaml, mtd.yaml,
partitions.yaml, etc. *they* will make the generic checks and hopefully
apply stricter checks, when deemed relevant.

Thanks,
Miquèl

  reply	other threads:[~2023-06-06  7:49 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-31 23:49 [PATCH v8 0/3] dt-bindings: mtd: marvell-nand: Add YAML scheme Chris Packham
2023-05-31 23:49 ` Chris Packham
2023-05-31 23:49 ` Chris Packham
2023-05-31 23:49 ` [PATCH v8 1/3] arm64: dts: marvell: cp11x: Fix nand_controller node name according to YAML Chris Packham
2023-05-31 23:49   ` Chris Packham
2023-05-31 23:49   ` Chris Packham
2023-05-31 23:49 ` [PATCH v8 2/3] ARM: dts: mvebu: align MTD partition nodes to dtschema Chris Packham
2023-05-31 23:49   ` Chris Packham
2023-05-31 23:49   ` Chris Packham
2023-05-31 23:49 ` [PATCH v8 3/3] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme Chris Packham
2023-05-31 23:49   ` Chris Packham
2023-05-31 23:49   ` Chris Packham
2023-06-01  7:05   ` Krzysztof Kozlowski
2023-06-01  7:05     ` Krzysztof Kozlowski
2023-06-01  7:05     ` Krzysztof Kozlowski
2023-06-01 21:07     ` Chris Packham
2023-06-01 21:07       ` Chris Packham
2023-06-01 21:07       ` Chris Packham
2023-06-01 23:06     ` Chris Packham
2023-06-01 23:06       ` Chris Packham
2023-06-01 23:06       ` Chris Packham
2023-06-04  9:26       ` Krzysztof Kozlowski
2023-06-04  9:26         ` Krzysztof Kozlowski
2023-06-04  9:26         ` Krzysztof Kozlowski
2023-06-05 20:44         ` Chris Packham
2023-06-05 20:44           ` Chris Packham
2023-06-05 20:44           ` Chris Packham
2023-06-05 21:26           ` Andrew Lunn
2023-06-05 21:26             ` Andrew Lunn
2023-06-05 21:26             ` Andrew Lunn
2023-06-06  4:38           ` Chris Packham
2023-06-06  4:38             ` Chris Packham
2023-06-06  4:38             ` Chris Packham
2023-06-06  7:48             ` Miquel Raynal [this message]
2023-06-06  7:48               ` Miquel Raynal
2023-06-06  7:48               ` Miquel Raynal
2023-06-06  8:44               ` Krzysztof Kozlowski
2023-06-06  8:44                 ` Krzysztof Kozlowski
2023-06-06  8:44                 ` Krzysztof Kozlowski
2023-06-06 10:28                 ` Miquel Raynal
2023-06-06 10:28                   ` Miquel Raynal
2023-06-06 10:28                   ` Miquel Raynal
2023-06-06 10:37                   ` Krzysztof Kozlowski
2023-06-06 10:37                     ` Krzysztof Kozlowski
2023-06-06 10:37                     ` Krzysztof Kozlowski
2023-06-06 10:40                     ` Krzysztof Kozlowski
2023-06-06 10:40                       ` Krzysztof Kozlowski
2023-06-06 10:40                       ` Krzysztof Kozlowski
2023-06-06 10:57                       ` Miquel Raynal
2023-06-06 10:57                         ` Miquel Raynal
2023-06-06 10:57                         ` Miquel Raynal
2023-06-06 11:07                         ` Miquel Raynal
2023-06-06 11:07                           ` Miquel Raynal
2023-06-06 11:07                           ` Miquel Raynal
2023-06-06 11:11                           ` Krzysztof Kozlowski
2023-06-06 11:11                             ` Krzysztof Kozlowski
2023-06-06 11:11                             ` Krzysztof Kozlowski
2023-06-06 11:14                             ` Krzysztof Kozlowski
2023-06-06 11:14                               ` Krzysztof Kozlowski
2023-06-06 11:14                               ` Krzysztof Kozlowski
2023-06-06 11:09                         ` Krzysztof Kozlowski
2023-06-06 11:09                           ` Krzysztof Kozlowski
2023-06-06 11:09                           ` 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=20230606094855.1ab005eb@xps-13 \
    --to=miquel.raynal@bootlin.com \
    --cc=Chris.Packham@alliedtelesis.co.nz \
    --cc=andrew@lunn.ch \
    --cc=conor+dt@kernel.org \
    --cc=conor@kernel.org \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.