xref: /freebsd-src/sys/contrib/device-tree/Bindings/memory-controllers/ddr/jedec,lpddr2.yaml (revision 8cc087a1eee9ec1ca9f7ac1e63ad51bdb5a682eb)
1*8cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8cc087a1SEmmanuel Vadot%YAML 1.2
3*8cc087a1SEmmanuel Vadot---
4*8cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr2.yaml#
5*8cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8cc087a1SEmmanuel Vadot
7*8cc087a1SEmmanuel Vadottitle: LPDDR2 SDRAM compliant to JEDEC JESD209-2
8*8cc087a1SEmmanuel Vadot
9*8cc087a1SEmmanuel Vadotmaintainers:
10*8cc087a1SEmmanuel Vadot  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
11*8cc087a1SEmmanuel Vadot
12*8cc087a1SEmmanuel Vadotproperties:
13*8cc087a1SEmmanuel Vadot  compatible:
14*8cc087a1SEmmanuel Vadot    oneOf:
15*8cc087a1SEmmanuel Vadot      - items:
16*8cc087a1SEmmanuel Vadot          - enum:
17*8cc087a1SEmmanuel Vadot              - elpida,ECB240ABACN
18*8cc087a1SEmmanuel Vadot              - elpida,B8132B2PB-6D-F
19*8cc087a1SEmmanuel Vadot          - enum:
20*8cc087a1SEmmanuel Vadot              - jedec,lpddr2-s4
21*8cc087a1SEmmanuel Vadot      - items:
22*8cc087a1SEmmanuel Vadot          - enum:
23*8cc087a1SEmmanuel Vadot              - jedec,lpddr2-s2
24*8cc087a1SEmmanuel Vadot      - items:
25*8cc087a1SEmmanuel Vadot          - enum:
26*8cc087a1SEmmanuel Vadot              - jedec,lpddr2-nvm
27*8cc087a1SEmmanuel Vadot
28*8cc087a1SEmmanuel Vadot  revision-id1:
29*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
30*8cc087a1SEmmanuel Vadot    maximum: 255
31*8cc087a1SEmmanuel Vadot    description: |
32*8cc087a1SEmmanuel Vadot      Revision 1 value of SDRAM chip. Obtained from device datasheet.
33*8cc087a1SEmmanuel Vadot
34*8cc087a1SEmmanuel Vadot  revision-id2:
35*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
36*8cc087a1SEmmanuel Vadot    maximum: 255
37*8cc087a1SEmmanuel Vadot    description: |
38*8cc087a1SEmmanuel Vadot      Revision 2 value of SDRAM chip. Obtained from device datasheet.
39*8cc087a1SEmmanuel Vadot
40*8cc087a1SEmmanuel Vadot  density:
41*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
42*8cc087a1SEmmanuel Vadot    description: |
43*8cc087a1SEmmanuel Vadot      Density in megabits of SDRAM chip. Obtained from device datasheet.
44*8cc087a1SEmmanuel Vadot    enum:
45*8cc087a1SEmmanuel Vadot      - 64
46*8cc087a1SEmmanuel Vadot      - 128
47*8cc087a1SEmmanuel Vadot      - 256
48*8cc087a1SEmmanuel Vadot      - 512
49*8cc087a1SEmmanuel Vadot      - 1024
50*8cc087a1SEmmanuel Vadot      - 2048
51*8cc087a1SEmmanuel Vadot      - 4096
52*8cc087a1SEmmanuel Vadot      - 8192
53*8cc087a1SEmmanuel Vadot      - 16384
54*8cc087a1SEmmanuel Vadot      - 32768
55*8cc087a1SEmmanuel Vadot
56*8cc087a1SEmmanuel Vadot  io-width:
57*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
58*8cc087a1SEmmanuel Vadot    description: |
59*8cc087a1SEmmanuel Vadot      IO bus width in bits of SDRAM chip. Obtained from device datasheet.
60*8cc087a1SEmmanuel Vadot    enum:
61*8cc087a1SEmmanuel Vadot      - 32
62*8cc087a1SEmmanuel Vadot      - 16
63*8cc087a1SEmmanuel Vadot      - 8
64*8cc087a1SEmmanuel Vadot
65*8cc087a1SEmmanuel Vadot  tRRD-min-tck:
66*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
67*8cc087a1SEmmanuel Vadot    maximum: 16
68*8cc087a1SEmmanuel Vadot    description: |
69*8cc087a1SEmmanuel Vadot      Active bank a to active bank b in terms of number of clock cycles.
70*8cc087a1SEmmanuel Vadot      Obtained from device datasheet.
71*8cc087a1SEmmanuel Vadot
72*8cc087a1SEmmanuel Vadot  tWTR-min-tck:
73*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
74*8cc087a1SEmmanuel Vadot    maximum: 16
75*8cc087a1SEmmanuel Vadot    description: |
76*8cc087a1SEmmanuel Vadot      Internal WRITE-to-READ command delay in terms of number of clock cycles.
77*8cc087a1SEmmanuel Vadot      Obtained from device datasheet.
78*8cc087a1SEmmanuel Vadot
79*8cc087a1SEmmanuel Vadot  tXP-min-tck:
80*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
81*8cc087a1SEmmanuel Vadot    maximum: 16
82*8cc087a1SEmmanuel Vadot    description: |
83*8cc087a1SEmmanuel Vadot      Exit power-down to next valid command delay in terms of number of clock
84*8cc087a1SEmmanuel Vadot      cycles. Obtained from device datasheet.
85*8cc087a1SEmmanuel Vadot
86*8cc087a1SEmmanuel Vadot  tRTP-min-tck:
87*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
88*8cc087a1SEmmanuel Vadot    maximum: 16
89*8cc087a1SEmmanuel Vadot    description: |
90*8cc087a1SEmmanuel Vadot      Internal READ to PRECHARGE command delay in terms of number of clock
91*8cc087a1SEmmanuel Vadot      cycles. Obtained from device datasheet.
92*8cc087a1SEmmanuel Vadot
93*8cc087a1SEmmanuel Vadot  tCKE-min-tck:
94*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
95*8cc087a1SEmmanuel Vadot    maximum: 16
96*8cc087a1SEmmanuel Vadot    description: |
97*8cc087a1SEmmanuel Vadot      CKE minimum pulse width (HIGH and LOW pulse width) in terms of number
98*8cc087a1SEmmanuel Vadot      of clock cycles. Obtained from device datasheet.
99*8cc087a1SEmmanuel Vadot
100*8cc087a1SEmmanuel Vadot  tRPab-min-tck:
101*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
102*8cc087a1SEmmanuel Vadot    maximum: 16
103*8cc087a1SEmmanuel Vadot    description: |
104*8cc087a1SEmmanuel Vadot      Row precharge time (all banks) in terms of number of clock cycles.
105*8cc087a1SEmmanuel Vadot      Obtained from device datasheet.
106*8cc087a1SEmmanuel Vadot
107*8cc087a1SEmmanuel Vadot  tRCD-min-tck:
108*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
109*8cc087a1SEmmanuel Vadot    maximum: 16
110*8cc087a1SEmmanuel Vadot    description: |
111*8cc087a1SEmmanuel Vadot      RAS-to-CAS delay in terms of number of clock cycles. Obtained from
112*8cc087a1SEmmanuel Vadot      device datasheet.
113*8cc087a1SEmmanuel Vadot
114*8cc087a1SEmmanuel Vadot  tWR-min-tck:
115*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
116*8cc087a1SEmmanuel Vadot    maximum: 16
117*8cc087a1SEmmanuel Vadot    description: |
118*8cc087a1SEmmanuel Vadot      WRITE recovery time in terms of number of clock cycles. Obtained from
119*8cc087a1SEmmanuel Vadot      device datasheet.
120*8cc087a1SEmmanuel Vadot
121*8cc087a1SEmmanuel Vadot  tRASmin-min-tck:
122*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
123*8cc087a1SEmmanuel Vadot    maximum: 16
124*8cc087a1SEmmanuel Vadot    description: |
125*8cc087a1SEmmanuel Vadot      Row active time in terms of number of clock cycles. Obtained from device
126*8cc087a1SEmmanuel Vadot      datasheet.
127*8cc087a1SEmmanuel Vadot
128*8cc087a1SEmmanuel Vadot  tCKESR-min-tck:
129*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
130*8cc087a1SEmmanuel Vadot    maximum: 16
131*8cc087a1SEmmanuel Vadot    description: |
132*8cc087a1SEmmanuel Vadot      CKE minimum pulse width during SELF REFRESH (low pulse width during
133*8cc087a1SEmmanuel Vadot      SELF REFRESH) in terms of number of clock cycles. Obtained from device
134*8cc087a1SEmmanuel Vadot      datasheet.
135*8cc087a1SEmmanuel Vadot
136*8cc087a1SEmmanuel Vadot  tFAW-min-tck:
137*8cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
138*8cc087a1SEmmanuel Vadot    maximum: 16
139*8cc087a1SEmmanuel Vadot    description: |
140*8cc087a1SEmmanuel Vadot      Four-bank activate window in terms of number of clock cycles. Obtained
141*8cc087a1SEmmanuel Vadot      from device datasheet.
142*8cc087a1SEmmanuel Vadot
143*8cc087a1SEmmanuel VadotpatternProperties:
144*8cc087a1SEmmanuel Vadot  "^lpddr2-timings":
145*8cc087a1SEmmanuel Vadot    type: object
146*8cc087a1SEmmanuel Vadot    description: |
147*8cc087a1SEmmanuel Vadot      The lpddr2 node may have one or more child nodes of type "lpddr2-timings".
148*8cc087a1SEmmanuel Vadot      "lpddr2-timings" provides AC timing parameters of the device for
149*8cc087a1SEmmanuel Vadot      a given speed-bin. The user may provide the timings for as many
150*8cc087a1SEmmanuel Vadot      speed-bins as is required. Please see Documentation/devicetree/
151*8cc087a1SEmmanuel Vadot      bindings/memory-controllers/ddr/lpddr2-timings.txt for more information
152*8cc087a1SEmmanuel Vadot      on "lpddr2-timings".
153*8cc087a1SEmmanuel Vadot
154*8cc087a1SEmmanuel Vadotrequired:
155*8cc087a1SEmmanuel Vadot  - compatible
156*8cc087a1SEmmanuel Vadot  - density
157*8cc087a1SEmmanuel Vadot  - io-width
158*8cc087a1SEmmanuel Vadot
159*8cc087a1SEmmanuel VadotadditionalProperties: false
160*8cc087a1SEmmanuel Vadot
161*8cc087a1SEmmanuel Vadotexamples:
162*8cc087a1SEmmanuel Vadot  - |
163*8cc087a1SEmmanuel Vadot    elpida_ECB240ABACN: lpddr2 {
164*8cc087a1SEmmanuel Vadot        compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4";
165*8cc087a1SEmmanuel Vadot        density = <2048>;
166*8cc087a1SEmmanuel Vadot        io-width = <32>;
167*8cc087a1SEmmanuel Vadot        revision-id1 = <1>;
168*8cc087a1SEmmanuel Vadot        revision-id2 = <0>;
169*8cc087a1SEmmanuel Vadot
170*8cc087a1SEmmanuel Vadot        tRPab-min-tck = <3>;
171*8cc087a1SEmmanuel Vadot        tRCD-min-tck = <3>;
172*8cc087a1SEmmanuel Vadot        tWR-min-tck = <3>;
173*8cc087a1SEmmanuel Vadot        tRASmin-min-tck = <3>;
174*8cc087a1SEmmanuel Vadot        tRRD-min-tck = <2>;
175*8cc087a1SEmmanuel Vadot        tWTR-min-tck = <2>;
176*8cc087a1SEmmanuel Vadot        tXP-min-tck = <2>;
177*8cc087a1SEmmanuel Vadot        tRTP-min-tck = <2>;
178*8cc087a1SEmmanuel Vadot        tCKE-min-tck = <3>;
179*8cc087a1SEmmanuel Vadot        tCKESR-min-tck = <3>;
180*8cc087a1SEmmanuel Vadot        tFAW-min-tck = <8>;
181*8cc087a1SEmmanuel Vadot
182*8cc087a1SEmmanuel Vadot        timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 {
183*8cc087a1SEmmanuel Vadot            compatible = "jedec,lpddr2-timings";
184*8cc087a1SEmmanuel Vadot            min-freq = <10000000>;
185*8cc087a1SEmmanuel Vadot            max-freq = <400000000>;
186*8cc087a1SEmmanuel Vadot            tRPab = <21000>;
187*8cc087a1SEmmanuel Vadot            tRCD = <18000>;
188*8cc087a1SEmmanuel Vadot            tWR = <15000>;
189*8cc087a1SEmmanuel Vadot            tRAS-min = <42000>;
190*8cc087a1SEmmanuel Vadot            tRRD = <10000>;
191*8cc087a1SEmmanuel Vadot            tWTR = <7500>;
192*8cc087a1SEmmanuel Vadot            tXP = <7500>;
193*8cc087a1SEmmanuel Vadot            tRTP = <7500>;
194*8cc087a1SEmmanuel Vadot            tCKESR = <15000>;
195*8cc087a1SEmmanuel Vadot            tDQSCK-max = <5500>;
196*8cc087a1SEmmanuel Vadot            tFAW = <50000>;
197*8cc087a1SEmmanuel Vadot            tZQCS = <90000>;
198*8cc087a1SEmmanuel Vadot            tZQCL = <360000>;
199*8cc087a1SEmmanuel Vadot            tZQinit = <1000000>;
200*8cc087a1SEmmanuel Vadot            tRAS-max-ns = <70000>;
201*8cc087a1SEmmanuel Vadot        };
202*8cc087a1SEmmanuel Vadot
203*8cc087a1SEmmanuel Vadot        timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 {
204*8cc087a1SEmmanuel Vadot            compatible = "jedec,lpddr2-timings";
205*8cc087a1SEmmanuel Vadot            min-freq = <10000000>;
206*8cc087a1SEmmanuel Vadot            max-freq = <200000000>;
207*8cc087a1SEmmanuel Vadot            tRPab = <21000>;
208*8cc087a1SEmmanuel Vadot            tRCD = <18000>;
209*8cc087a1SEmmanuel Vadot            tWR = <15000>;
210*8cc087a1SEmmanuel Vadot            tRAS-min = <42000>;
211*8cc087a1SEmmanuel Vadot            tRRD = <10000>;
212*8cc087a1SEmmanuel Vadot            tWTR = <10000>;
213*8cc087a1SEmmanuel Vadot            tXP = <7500>;
214*8cc087a1SEmmanuel Vadot            tRTP = <7500>;
215*8cc087a1SEmmanuel Vadot            tCKESR = <15000>;
216*8cc087a1SEmmanuel Vadot            tDQSCK-max = <5500>;
217*8cc087a1SEmmanuel Vadot            tFAW = <50000>;
218*8cc087a1SEmmanuel Vadot            tZQCS = <90000>;
219*8cc087a1SEmmanuel Vadot            tZQCL = <360000>;
220*8cc087a1SEmmanuel Vadot            tZQinit = <1000000>;
221*8cc087a1SEmmanuel Vadot            tRAS-max-ns = <70000>;
222*8cc087a1SEmmanuel Vadot        };
223*8cc087a1SEmmanuel Vadot    };
224