Commit b7178cd5 authored by Julius Werner's avatar Julius Werner Committed by Krzysztof Kozlowski
Browse files

dt-bindings: memory: Factor out common properties of LPDDR bindings



The bindings for different LPDDR versions mostly use the same kinds of
properties, so in order to reduce duplication when we're adding support
for more versions, this patch creates a new lpddr-props subschema that
can be referenced by the others to define these common parts. (This will
consider a few smaller I/O width and density numbers "legal" for LPDDR3
that are usually not used there, but this should be harmless.)

Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
Acked-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220930220606.303395-1-jwerner@chromium.org


Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
parent 1de3866f
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr-props.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Common properties for LPDDR types

description:
  Different LPDDR types generally use the same properties and only differ in the
  range of legal values for each. This file defines the common parts that can be
  reused for each type.

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

properties:
  revision-id:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description:
      Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
    maxItems: 2
    items:
      minimum: 0
      maximum: 255

  density:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      Density in megabits of SDRAM chip. Decoded from Mode Register 8.
    enum:
      - 64
      - 128
      - 256
      - 512
      - 1024
      - 2048
      - 4096
      - 8192
      - 16384
      - 32768

  io-width:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      IO bus width in bits of SDRAM chip. Decoded from Mode Register 8.
    enum:
      - 8
      - 16
      - 32

additionalProperties: true
+4 −36
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ title: LPDDR2 SDRAM compliant to JEDEC JESD209-2
maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

allOf:
  - $ref: jedec,lpddr-props.yaml#

properties:
  compatible:
    oneOf:
@@ -41,41 +44,6 @@ properties:
      Property is deprecated, use revision-id instead.
    deprecated: true

  revision-id:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
    minItems: 2
    maxItems: 2
    items:
      minimum: 0
      maximum: 255

  density:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      Density in megabits of SDRAM chip. Obtained from device datasheet.
    enum:
      - 64
      - 128
      - 256
      - 512
      - 1024
      - 2048
      - 4096
      - 8192
      - 16384
      - 32768

  io-width:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      IO bus width in bits of SDRAM chip. Obtained from device datasheet.
    enum:
      - 32
      - 16
      - 8

  tRRD-min-tck:
    $ref: /schemas/types.yaml#/definitions/uint32
    maximum: 16
@@ -168,7 +136,7 @@ required:
  - density
  - io-width

additionalProperties: false
unevaluatedProperties: false

examples:
  - |
+4 −28
Original line number Diff line number Diff line
@@ -9,6 +9,9 @@ title: LPDDR3 SDRAM compliant to JEDEC JESD209-3
maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

allOf:
  - $ref: jedec,lpddr-props.yaml#

properties:
  compatible:
    items:
@@ -20,24 +23,6 @@ properties:
    const: 1
    deprecated: true

  density:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      Density in megabits of SDRAM chip.
    enum:
      - 4096
      - 8192
      - 16384
      - 32768

  io-width:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      IO bus width in bits of SDRAM chip.
    enum:
      - 32
      - 16

  manufacturer-id:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
@@ -45,15 +30,6 @@ properties:
      deprecated, manufacturer should be derived from the compatible.
    deprecated: true

  revision-id:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    minItems: 2
    maxItems: 2
    items:
      maximum: 255
    description: |
      Revision value of SDRAM chip read from Mode Registers 6 and 7.

  '#size-cells':
    const: 0
    deprecated: true
@@ -206,7 +182,7 @@ required:
  - density
  - io-width

additionalProperties: false
unevaluatedProperties: false

examples:
  - |