2022-02-21 05:38:43

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: memory: lpddr2: Adjust revision ID property to match lpddr3

On 19/02/2022 02:24, Julius Werner wrote:
> Commit 3539a2 (dt-bindings: memory: lpddr2: Add revision-id properties)
> added the properties `revision-id1` and `revision-id2` to the
> "jedec,lpddr2" binding. The "jedec,lpddr3" binding already had a single
> array property `revision-id` for the same purpose. For consistency
> between related memory types, this patch deprecates the LPDDR2
> properties and instead adds a property in the same style as for LPDDR3
> to that binding.
>
> Signed-off-by: Julius Werner <[email protected]>
> ---
> .../memory-controllers/ddr/jedec,lpddr2.yaml | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
> index 25ed0266f6dd3d..37229738f47271 100644
> --- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
> +++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
> @@ -30,12 +30,23 @@ properties:
> maximum: 255
> description: |
> Revision 1 value of SDRAM chip. Obtained from device datasheet.
> + Property is deprecated, use revision-id instead.
> + deprecated: true
>
> revision-id2:
> $ref: /schemas/types.yaml#/definitions/uint32
> maximum: 255
> description: |
> Revision 2 value of SDRAM chip. Obtained from device datasheet.
> + Property is deprecated, use revision-id instead.
> + deprecated: true
> +
> + revision-id:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + minItems: 2
> + maxItems: 2

You need maximum value under items. See:
Documentation/devicetree/bindings/arm/l2c2x0.yaml

> + description: |
> + Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
>
> density:
> $ref: /schemas/types.yaml#/definitions/uint32
> @@ -164,8 +175,7 @@ examples:
> compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4";
> density = <2048>;
> io-width = <32>;
> - revision-id1 = <1>;
> - revision-id2 = <0>;
> + revision-id = <123 234>;

Don't change the original values.

Plus what Dmitry pointed out.

>
> tRPab-min-tck = <3>;
> tRCD-min-tck = <3>;


Best regards,
Krzysztof


2022-02-23 10:04:40

by Julius Werner

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: memory: lpddr2: Adjust revision ID property to match lpddr3

> > + revision-id:
> > + $ref: /schemas/types.yaml#/definitions/uint32-array
> > + minItems: 2
> > + maxItems: 2
>
> You need maximum value under items. See:
> Documentation/devicetree/bindings/arm/l2c2x0.yaml

Sorry, can you clarify how this is supposed to be? Do you want

revision-id:
minItems: 2
maxItems: 2
items:
minItems: 2
maxItems: 2

or just

revision-id:
items:
minItems: 2
maxItems: 2

I see examples of both in the file you linked (and also examples of
what my original patch did). Is there any authoritative documentation
somewhere I can read that specifies which of those is correct? (I
tried looking at
https://json-schema.org/understanding-json-schema/reference/array.html#length
but I'm not sure if that's relevant here.)

For updating existing DTSes, do you want that in the same patch or a
separate patch in a series?

2022-02-23 10:22:05

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: memory: lpddr2: Adjust revision ID property to match lpddr3

On 23/02/2022 03:44, Julius Werner wrote:
>>> + revision-id:
>>> + $ref: /schemas/types.yaml#/definitions/uint32-array
>>> + minItems: 2
>>> + maxItems: 2
>>
>> You need maximum value under items. See:
>> Documentation/devicetree/bindings/arm/l2c2x0.yaml
>
> Sorry, can you clarify how this is supposed to be? Do you want
>
> revision-id:
> minItems: 2
> maxItems: 2
> items:
> minItems: 2
> maxItems: 2
>
> or just
>
> revision-id:
> items:
> minItems: 2
> maxItems: 2
>
> I see examples of both in the file you linked (and also examples of
> what my original patch did).

There is no example of the first case in linked file. I am not sure if
it is correct even... I did not ask about maximum number of items, but
"maximum value", so like this:
https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/arm/l2c2x0.yaml#L73

> Is there any authoritative documentation
> somewhere I can read that specifies which of those is correct? (I
> tried looking at
> https://json-schema.org/understanding-json-schema/reference/array.html#length
> but I'm not sure if that's relevant here.)

example-schema.yaml is the best, but it might not cover that part. We
need more docs, I know...


> For updating existing DTSes, do you want that in the same patch or a
> separate patch in a series?

Separate patch in this series, please.


Best regards,
Krzysztof