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