diff mbox series

[v2] dt-bindings: memory: lpddr2: Adjust revision ID property to match lpddr3

Message ID 20220219012457.2889385-1-jwerner@chromium.org
State Superseded, archived
Headers show
Series [v2] dt-bindings: memory: lpddr2: Adjust revision ID property to match lpddr3 | expand

Checks

Context Check Description
robh/patch-applied success
robh/checkpatch warning total: 0 errors, 1 warnings, 32 lines checked
robh/dtbs-check success
robh/dt-meta-schema success

Commit Message

Julius Werner Feb. 19, 2022, 1:24 a.m. UTC
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 <jwerner@chromium.org>
---
 .../memory-controllers/ddr/jedec,lpddr2.yaml       | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

Comments

Dmitry Osipenko Feb. 19, 2022, 12:49 p.m. UTC | #1
19.02.2022 04:24, Julius Werner пишет:
> 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 <jwerner@chromium.org>
> ---

Every revised version of the patch must contain changelog.

>  .../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
> +    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>;
>  
>          tRPab-min-tck = <3>;
>          tRCD-min-tck = <3>;

It's not enough to change only the binding. You should also update the
device-trees and drivers/memory.
Krzysztof Kozlowski Feb. 19, 2022, 3:41 p.m. UTC | #2
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 <jwerner@chromium.org>
> ---
>  .../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
Julius Werner Feb. 23, 2022, 2:44 a.m. UTC | #3
> > +  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?
Krzysztof Kozlowski Feb. 23, 2022, 7:17 a.m. UTC | #4
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
diff mbox series

Patch

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
+    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>;
 
         tRPab-min-tck = <3>;
         tRCD-min-tck = <3>;