xref: /freebsd/sys/contrib/device-tree/Bindings/memory-controllers/ddr/jedec,lpddr3.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c9ccf3a3SEmmanuel Vadot%YAML 1.2
3c9ccf3a3SEmmanuel Vadot---
4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr3.yaml#
5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadottitle: LPDDR3 SDRAM compliant to JEDEC JESD209-3
8c9ccf3a3SEmmanuel Vadot
9c9ccf3a3SEmmanuel Vadotmaintainers:
10c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11c9ccf3a3SEmmanuel Vadot
12*8bab661aSEmmanuel VadotallOf:
13*8bab661aSEmmanuel Vadot  - $ref: jedec,lpddr-props.yaml#
14*8bab661aSEmmanuel Vadot
15c9ccf3a3SEmmanuel Vadotproperties:
16c9ccf3a3SEmmanuel Vadot  compatible:
17*8bab661aSEmmanuel Vadot    oneOf:
18*8bab661aSEmmanuel Vadot      - items:
19c9ccf3a3SEmmanuel Vadot          - enum:
20c9ccf3a3SEmmanuel Vadot              - samsung,K3QF2F20DB
21c9ccf3a3SEmmanuel Vadot          - const: jedec,lpddr3
22*8bab661aSEmmanuel Vadot      - items:
23*8bab661aSEmmanuel Vadot          - pattern: "^lpddr3-[0-9a-f]{2},[0-9a-f]{4}$"
24*8bab661aSEmmanuel Vadot          - const: jedec,lpddr3
25c9ccf3a3SEmmanuel Vadot
26c9ccf3a3SEmmanuel Vadot  '#address-cells':
27c9ccf3a3SEmmanuel Vadot    const: 1
28c9ccf3a3SEmmanuel Vadot    deprecated: true
29c9ccf3a3SEmmanuel Vadot
30c9ccf3a3SEmmanuel Vadot  manufacturer-id:
31c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
32c9ccf3a3SEmmanuel Vadot    description: |
33c9ccf3a3SEmmanuel Vadot      Manufacturer ID value read from Mode Register 5.  The property is
34c9ccf3a3SEmmanuel Vadot      deprecated, manufacturer should be derived from the compatible.
35c9ccf3a3SEmmanuel Vadot    deprecated: true
36c9ccf3a3SEmmanuel Vadot
37c9ccf3a3SEmmanuel Vadot  '#size-cells':
38c9ccf3a3SEmmanuel Vadot    const: 0
39c9ccf3a3SEmmanuel Vadot    deprecated: true
40c9ccf3a3SEmmanuel Vadot
41c9ccf3a3SEmmanuel Vadot  tCKE-min-tck:
42c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
43c9ccf3a3SEmmanuel Vadot    maximum: 15
44c9ccf3a3SEmmanuel Vadot    description: |
45c9ccf3a3SEmmanuel Vadot      CKE minimum pulse width (HIGH and LOW pulse width) in terms of number
46c9ccf3a3SEmmanuel Vadot      of clock cycles.
47c9ccf3a3SEmmanuel Vadot
48c9ccf3a3SEmmanuel Vadot  tCKESR-min-tck:
49c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
50c9ccf3a3SEmmanuel Vadot    maximum: 15
51c9ccf3a3SEmmanuel Vadot    description: |
52c9ccf3a3SEmmanuel Vadot      CKE minimum pulse width during SELF REFRESH (low pulse width during
53c9ccf3a3SEmmanuel Vadot      SELF REFRESH) in terms of number of clock cycles.
54c9ccf3a3SEmmanuel Vadot
55c9ccf3a3SEmmanuel Vadot  tDQSCK-min-tck:
56c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
57c9ccf3a3SEmmanuel Vadot    maximum: 15
58c9ccf3a3SEmmanuel Vadot    description: |
59c9ccf3a3SEmmanuel Vadot      DQS output data access time from CK_t/CK_c in terms of number of clock
60c9ccf3a3SEmmanuel Vadot      cycles.
61c9ccf3a3SEmmanuel Vadot
62c9ccf3a3SEmmanuel Vadot  tFAW-min-tck:
63c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
64c9ccf3a3SEmmanuel Vadot    maximum: 63
65c9ccf3a3SEmmanuel Vadot    description: |
66c9ccf3a3SEmmanuel Vadot      Four-bank activate window in terms of number of clock cycles.
67c9ccf3a3SEmmanuel Vadot
68c9ccf3a3SEmmanuel Vadot  tMRD-min-tck:
69c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
70c9ccf3a3SEmmanuel Vadot    maximum: 15
71c9ccf3a3SEmmanuel Vadot    description: |
72c9ccf3a3SEmmanuel Vadot      Mode register set command delay in terms of number of clock cycles.
73c9ccf3a3SEmmanuel Vadot
74c9ccf3a3SEmmanuel Vadot  tR2R-C2C-min-tck:
75c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
76c9ccf3a3SEmmanuel Vadot    enum: [0, 1]
77c9ccf3a3SEmmanuel Vadot    description: |
78c9ccf3a3SEmmanuel Vadot      Additional READ-to-READ delay in chip-to-chip cases in terms of number
79c9ccf3a3SEmmanuel Vadot      of clock cycles.
80c9ccf3a3SEmmanuel Vadot
81c9ccf3a3SEmmanuel Vadot  tRAS-min-tck:
82c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
83c9ccf3a3SEmmanuel Vadot    maximum: 63
84c9ccf3a3SEmmanuel Vadot    description: |
85c9ccf3a3SEmmanuel Vadot      Row active time in terms of number of clock cycles.
86c9ccf3a3SEmmanuel Vadot
87c9ccf3a3SEmmanuel Vadot  tRC-min-tck:
88c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
89c9ccf3a3SEmmanuel Vadot    maximum: 63
90c9ccf3a3SEmmanuel Vadot    description: |
91c9ccf3a3SEmmanuel Vadot      ACTIVATE-to-ACTIVATE command period in terms of number of clock cycles.
92c9ccf3a3SEmmanuel Vadot
93c9ccf3a3SEmmanuel Vadot  tRCD-min-tck:
94c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
95c9ccf3a3SEmmanuel Vadot    maximum: 15
96c9ccf3a3SEmmanuel Vadot    description: |
97c9ccf3a3SEmmanuel Vadot      RAS-to-CAS delay in terms of number of clock cycles.
98c9ccf3a3SEmmanuel Vadot
99c9ccf3a3SEmmanuel Vadot  tRFC-min-tck:
100c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
101c9ccf3a3SEmmanuel Vadot    maximum: 255
102c9ccf3a3SEmmanuel Vadot    description: |
103c9ccf3a3SEmmanuel Vadot      Refresh Cycle time in terms of number of clock cycles.
104c9ccf3a3SEmmanuel Vadot
105c9ccf3a3SEmmanuel Vadot  tRL-min-tck:
106c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
107c9ccf3a3SEmmanuel Vadot    maximum: 15
108c9ccf3a3SEmmanuel Vadot    description: |
109c9ccf3a3SEmmanuel Vadot     READ data latency in terms of number of clock cycles.
110c9ccf3a3SEmmanuel Vadot
111c9ccf3a3SEmmanuel Vadot  tRPab-min-tck:
112c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
113c9ccf3a3SEmmanuel Vadot    maximum: 15
114c9ccf3a3SEmmanuel Vadot    description: |
115c9ccf3a3SEmmanuel Vadot      Row precharge time (all banks) in terms of number of clock cycles.
116c9ccf3a3SEmmanuel Vadot
117c9ccf3a3SEmmanuel Vadot  tRPpb-min-tck:
118c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
119c9ccf3a3SEmmanuel Vadot    maximum: 15
120c9ccf3a3SEmmanuel Vadot    description: |
121c9ccf3a3SEmmanuel Vadot      Row precharge time (single banks) in terms of number of clock cycles.
122c9ccf3a3SEmmanuel Vadot
123c9ccf3a3SEmmanuel Vadot  tRRD-min-tck:
124c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
125c9ccf3a3SEmmanuel Vadot    maximum: 15
126c9ccf3a3SEmmanuel Vadot    description: |
127c9ccf3a3SEmmanuel Vadot      Active bank A to active bank B in terms of number of clock cycles.
128c9ccf3a3SEmmanuel Vadot
129c9ccf3a3SEmmanuel Vadot  tRTP-min-tck:
130c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
131c9ccf3a3SEmmanuel Vadot    maximum: 15
132c9ccf3a3SEmmanuel Vadot    description: |
133c9ccf3a3SEmmanuel Vadot      Internal READ to PRECHARGE command delay in terms of number of clock
134c9ccf3a3SEmmanuel Vadot      cycles.
135c9ccf3a3SEmmanuel Vadot
136c9ccf3a3SEmmanuel Vadot  tW2W-C2C-min-tck:
137c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
138c9ccf3a3SEmmanuel Vadot    enum: [0, 1]
139c9ccf3a3SEmmanuel Vadot    description: |
140c9ccf3a3SEmmanuel Vadot      Additional WRITE-to-WRITE delay in chip-to-chip cases in terms of number
141c9ccf3a3SEmmanuel Vadot      of clock cycles.
142c9ccf3a3SEmmanuel Vadot
143c9ccf3a3SEmmanuel Vadot  tWL-min-tck:
144c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
145c9ccf3a3SEmmanuel Vadot    maximum: 15
146c9ccf3a3SEmmanuel Vadot    description: |
147c9ccf3a3SEmmanuel Vadot      WRITE data latency in terms of number of clock cycles.
148c9ccf3a3SEmmanuel Vadot
149c9ccf3a3SEmmanuel Vadot  tWR-min-tck:
150c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
151c9ccf3a3SEmmanuel Vadot    maximum: 15
152c9ccf3a3SEmmanuel Vadot    description: |
153c9ccf3a3SEmmanuel Vadot      WRITE recovery time in terms of number of clock cycles.
154c9ccf3a3SEmmanuel Vadot
155c9ccf3a3SEmmanuel Vadot  tWTR-min-tck:
156c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
157c9ccf3a3SEmmanuel Vadot    maximum: 15
158c9ccf3a3SEmmanuel Vadot    description: |
159c9ccf3a3SEmmanuel Vadot      Internal WRITE-to-READ command delay in terms of number of clock cycles.
160c9ccf3a3SEmmanuel Vadot
161c9ccf3a3SEmmanuel Vadot  tXP-min-tck:
162c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
163c9ccf3a3SEmmanuel Vadot    maximum: 255
164c9ccf3a3SEmmanuel Vadot    description: |
165c9ccf3a3SEmmanuel Vadot      Exit power-down to next valid command delay in terms of number of clock
166c9ccf3a3SEmmanuel Vadot      cycles.
167c9ccf3a3SEmmanuel Vadot
168c9ccf3a3SEmmanuel Vadot  tXSR-min-tck:
169c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
170c9ccf3a3SEmmanuel Vadot    maximum: 1023
171c9ccf3a3SEmmanuel Vadot    description: |
172c9ccf3a3SEmmanuel Vadot      SELF REFRESH exit to next valid command delay in terms of number of clock
173c9ccf3a3SEmmanuel Vadot      cycles.
174c9ccf3a3SEmmanuel Vadot
175c9ccf3a3SEmmanuel VadotpatternProperties:
176c9ccf3a3SEmmanuel Vadot  "^timings((-[0-9])+|(@[0-9a-f]+))?$":
177c9ccf3a3SEmmanuel Vadot    $ref: jedec,lpddr3-timings.yaml
178c9ccf3a3SEmmanuel Vadot    description: |
179c9ccf3a3SEmmanuel Vadot      The lpddr3 node may have one or more child nodes with timings.
180c9ccf3a3SEmmanuel Vadot      Each timing node provides AC timing parameters of the device for a given
181c9ccf3a3SEmmanuel Vadot      speed-bin. The user may provide the timings for as many speed-bins as is
182c9ccf3a3SEmmanuel Vadot      required.
183c9ccf3a3SEmmanuel Vadot
184c9ccf3a3SEmmanuel Vadotrequired:
185c9ccf3a3SEmmanuel Vadot  - compatible
186c9ccf3a3SEmmanuel Vadot  - density
187c9ccf3a3SEmmanuel Vadot  - io-width
188c9ccf3a3SEmmanuel Vadot
189*8bab661aSEmmanuel VadotunevaluatedProperties: false
190c9ccf3a3SEmmanuel Vadot
191c9ccf3a3SEmmanuel Vadotexamples:
192c9ccf3a3SEmmanuel Vadot  - |
193c9ccf3a3SEmmanuel Vadot    lpddr3 {
194c9ccf3a3SEmmanuel Vadot        compatible = "samsung,K3QF2F20DB", "jedec,lpddr3";
195c9ccf3a3SEmmanuel Vadot        density = <16384>;
196c9ccf3a3SEmmanuel Vadot        io-width = <32>;
197c9ccf3a3SEmmanuel Vadot
198c9ccf3a3SEmmanuel Vadot        tCKE-min-tck = <2>;
199c9ccf3a3SEmmanuel Vadot        tCKESR-min-tck = <2>;
200c9ccf3a3SEmmanuel Vadot        tDQSCK-min-tck = <5>;
201c9ccf3a3SEmmanuel Vadot        tFAW-min-tck = <5>;
202c9ccf3a3SEmmanuel Vadot        tMRD-min-tck = <5>;
203c9ccf3a3SEmmanuel Vadot        tR2R-C2C-min-tck = <0>;
204c9ccf3a3SEmmanuel Vadot        tRAS-min-tck = <5>;
205c9ccf3a3SEmmanuel Vadot        tRC-min-tck = <6>;
206c9ccf3a3SEmmanuel Vadot        tRCD-min-tck = <3>;
207c9ccf3a3SEmmanuel Vadot        tRFC-min-tck = <17>;
208c9ccf3a3SEmmanuel Vadot        tRL-min-tck = <14>;
209c9ccf3a3SEmmanuel Vadot        tRPab-min-tck = <2>;
210c9ccf3a3SEmmanuel Vadot        tRPpb-min-tck = <2>;
211c9ccf3a3SEmmanuel Vadot        tRRD-min-tck = <2>;
212c9ccf3a3SEmmanuel Vadot        tRTP-min-tck = <2>;
213c9ccf3a3SEmmanuel Vadot        tW2W-C2C-min-tck = <0>;
214c9ccf3a3SEmmanuel Vadot        tWL-min-tck = <8>;
215c9ccf3a3SEmmanuel Vadot        tWR-min-tck = <7>;
216c9ccf3a3SEmmanuel Vadot        tWTR-min-tck = <2>;
217c9ccf3a3SEmmanuel Vadot        tXP-min-tck = <2>;
218c9ccf3a3SEmmanuel Vadot        tXSR-min-tck = <12>;
219c9ccf3a3SEmmanuel Vadot
220c9ccf3a3SEmmanuel Vadot        timings {
221c9ccf3a3SEmmanuel Vadot            compatible = "jedec,lpddr3-timings";
222c9ccf3a3SEmmanuel Vadot            max-freq = <800000000>;
223c9ccf3a3SEmmanuel Vadot            min-freq = <100000000>;
224c9ccf3a3SEmmanuel Vadot            tCKE = <3750>;
225c9ccf3a3SEmmanuel Vadot            tCKESR = <3750>;
226c9ccf3a3SEmmanuel Vadot            tFAW = <25000>;
227c9ccf3a3SEmmanuel Vadot            tMRD = <7000>;
228c9ccf3a3SEmmanuel Vadot            tR2R-C2C = <0>;
229c9ccf3a3SEmmanuel Vadot            tRAS = <23000>;
230c9ccf3a3SEmmanuel Vadot            tRC = <33750>;
231c9ccf3a3SEmmanuel Vadot            tRCD = <10000>;
232c9ccf3a3SEmmanuel Vadot            tRFC = <65000>;
233c9ccf3a3SEmmanuel Vadot            tRPab = <12000>;
234c9ccf3a3SEmmanuel Vadot            tRPpb = <12000>;
235c9ccf3a3SEmmanuel Vadot            tRRD = <6000>;
236c9ccf3a3SEmmanuel Vadot            tRTP = <3750>;
237c9ccf3a3SEmmanuel Vadot            tW2W-C2C = <0>;
238c9ccf3a3SEmmanuel Vadot            tWR = <7500>;
239c9ccf3a3SEmmanuel Vadot            tWTR = <3750>;
240c9ccf3a3SEmmanuel Vadot            tXP = <3750>;
241c9ccf3a3SEmmanuel Vadot            tXSR = <70000>;
242c9ccf3a3SEmmanuel Vadot        };
243c9ccf3a3SEmmanuel Vadot    };
244