1b7178cd5SJulius Werner# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2b7178cd5SJulius Werner%YAML 1.2
3b7178cd5SJulius Werner---
4b7178cd5SJulius Werner$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr-props.yaml#
5b7178cd5SJulius Werner$schema: http://devicetree.org/meta-schemas/core.yaml#
6b7178cd5SJulius Werner
7b7178cd5SJulius Wernertitle: Common properties for LPDDR types
8b7178cd5SJulius Werner
9b7178cd5SJulius Wernerdescription:
10b7178cd5SJulius Werner  Different LPDDR types generally use the same properties and only differ in the
11b7178cd5SJulius Werner  range of legal values for each. This file defines the common parts that can be
12*4985a545SJulius Werner  reused for each type. Nodes using this schema should generally be nested under
13*4985a545SJulius Werner  an LPDDR channel node.
14b7178cd5SJulius Werner
15b7178cd5SJulius Wernermaintainers:
16b7178cd5SJulius Werner  - Krzysztof Kozlowski <krzk@kernel.org>
17b7178cd5SJulius Werner
18b7178cd5SJulius Wernerproperties:
19686fe63bSJulius Werner  compatible:
20686fe63bSJulius Werner    description:
21686fe63bSJulius Werner      Compatible strings can be either explicit vendor names and part numbers
22686fe63bSJulius Werner      (e.g. elpida,ECB240ABACN), or generated strings of the form
23686fe63bSJulius Werner      lpddrX-YY,ZZZZ where X is the LPDDR version, YY is the manufacturer ID
24686fe63bSJulius Werner      (from MR5) and ZZZZ is the revision ID (from MR6 and MR7). Both IDs are
25686fe63bSJulius Werner      formatted in lower case hexadecimal representation with leading zeroes.
26686fe63bSJulius Werner      The latter form can be useful when LPDDR nodes are created at runtime by
27686fe63bSJulius Werner      boot firmware that doesn't have access to static part number information.
28686fe63bSJulius Werner
29*4985a545SJulius Werner  reg:
30*4985a545SJulius Werner    description:
31*4985a545SJulius Werner      The rank number of this LPDDR rank when used as a subnode to an LPDDR
32*4985a545SJulius Werner      channel.
33*4985a545SJulius Werner    minimum: 0
34*4985a545SJulius Werner    maximum: 3
35*4985a545SJulius Werner
36b7178cd5SJulius Werner  revision-id:
37b7178cd5SJulius Werner    $ref: /schemas/types.yaml#/definitions/uint32-array
38b7178cd5SJulius Werner    description:
39b7178cd5SJulius Werner      Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
40b7178cd5SJulius Werner    maxItems: 2
41b7178cd5SJulius Werner    items:
42b7178cd5SJulius Werner      minimum: 0
43b7178cd5SJulius Werner      maximum: 255
44b7178cd5SJulius Werner
45b7178cd5SJulius Werner  density:
46b7178cd5SJulius Werner    $ref: /schemas/types.yaml#/definitions/uint32
47b7178cd5SJulius Werner    description:
48b7178cd5SJulius Werner      Density in megabits of SDRAM chip. Decoded from Mode Register 8.
49b7178cd5SJulius Werner    enum:
50b7178cd5SJulius Werner      - 64
51b7178cd5SJulius Werner      - 128
52b7178cd5SJulius Werner      - 256
53b7178cd5SJulius Werner      - 512
54b7178cd5SJulius Werner      - 1024
55b7178cd5SJulius Werner      - 2048
56a500528fSJulius Werner      - 3072
57b7178cd5SJulius Werner      - 4096
58a500528fSJulius Werner      - 6144
59b7178cd5SJulius Werner      - 8192
60a500528fSJulius Werner      - 12288
61b7178cd5SJulius Werner      - 16384
62a500528fSJulius Werner      - 24576
63b7178cd5SJulius Werner      - 32768
64b7178cd5SJulius Werner
65b7178cd5SJulius Werner  io-width:
66b7178cd5SJulius Werner    $ref: /schemas/types.yaml#/definitions/uint32
67b7178cd5SJulius Werner    description:
68b7178cd5SJulius Werner      IO bus width in bits of SDRAM chip. Decoded from Mode Register 8.
69b7178cd5SJulius Werner    enum:
70b7178cd5SJulius Werner      - 8
71b7178cd5SJulius Werner      - 16
72b7178cd5SJulius Werner      - 32
73b7178cd5SJulius Werner
74b7178cd5SJulius WerneradditionalProperties: true
75