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