xref: /linux/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml (revision b7178cd53ff954b031bf96aed322ab185e0e7f58)
19e17f71eSDmitry Osipenko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
29e17f71eSDmitry Osipenko%YAML 1.2
39e17f71eSDmitry Osipenko---
49e17f71eSDmitry Osipenko$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr2.yaml#
59e17f71eSDmitry Osipenko$schema: http://devicetree.org/meta-schemas/core.yaml#
69e17f71eSDmitry Osipenko
79e17f71eSDmitry Osipenkotitle: LPDDR2 SDRAM compliant to JEDEC JESD209-2
89e17f71eSDmitry Osipenko
99e17f71eSDmitry Osipenkomaintainers:
108a1e6bb3SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzk@kernel.org>
119e17f71eSDmitry Osipenko
12*b7178cd5SJulius WernerallOf:
13*b7178cd5SJulius Werner  - $ref: jedec,lpddr-props.yaml#
14*b7178cd5SJulius Werner
159e17f71eSDmitry Osipenkoproperties:
169e17f71eSDmitry Osipenko  compatible:
179e17f71eSDmitry Osipenko    oneOf:
189e17f71eSDmitry Osipenko      - items:
199e17f71eSDmitry Osipenko          - enum:
209e17f71eSDmitry Osipenko              - elpida,ECB240ABACN
212782ece0SDmitry Osipenko              - elpida,B8132B2PB-6D-F
229e17f71eSDmitry Osipenko          - enum:
239e17f71eSDmitry Osipenko              - jedec,lpddr2-s4
249e17f71eSDmitry Osipenko      - items:
259e17f71eSDmitry Osipenko          - enum:
269e17f71eSDmitry Osipenko              - jedec,lpddr2-s2
279e17f71eSDmitry Osipenko      - items:
289e17f71eSDmitry Osipenko          - enum:
299e17f71eSDmitry Osipenko              - jedec,lpddr2-nvm
309e17f71eSDmitry Osipenko
313539a2c6SDmitry Osipenko  revision-id1:
323539a2c6SDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
333539a2c6SDmitry Osipenko    maximum: 255
343539a2c6SDmitry Osipenko    description: |
353539a2c6SDmitry Osipenko      Revision 1 value of SDRAM chip. Obtained from device datasheet.
3680ce9173SJulius Werner      Property is deprecated, use revision-id instead.
3780ce9173SJulius Werner    deprecated: true
383539a2c6SDmitry Osipenko
393539a2c6SDmitry Osipenko  revision-id2:
403539a2c6SDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
413539a2c6SDmitry Osipenko    maximum: 255
423539a2c6SDmitry Osipenko    description: |
433539a2c6SDmitry Osipenko      Revision 2 value of SDRAM chip. Obtained from device datasheet.
4480ce9173SJulius Werner      Property is deprecated, use revision-id instead.
4580ce9173SJulius Werner    deprecated: true
4680ce9173SJulius Werner
479e17f71eSDmitry Osipenko  tRRD-min-tck:
489e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
499e17f71eSDmitry Osipenko    maximum: 16
509e17f71eSDmitry Osipenko    description: |
519e17f71eSDmitry Osipenko      Active bank a to active bank b in terms of number of clock cycles.
529e17f71eSDmitry Osipenko      Obtained from device datasheet.
539e17f71eSDmitry Osipenko
549e17f71eSDmitry Osipenko  tWTR-min-tck:
559e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
569e17f71eSDmitry Osipenko    maximum: 16
579e17f71eSDmitry Osipenko    description: |
589e17f71eSDmitry Osipenko      Internal WRITE-to-READ command delay in terms of number of clock cycles.
599e17f71eSDmitry Osipenko      Obtained from device datasheet.
609e17f71eSDmitry Osipenko
619e17f71eSDmitry Osipenko  tXP-min-tck:
629e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
639e17f71eSDmitry Osipenko    maximum: 16
649e17f71eSDmitry Osipenko    description: |
659e17f71eSDmitry Osipenko      Exit power-down to next valid command delay in terms of number of clock
669e17f71eSDmitry Osipenko      cycles. Obtained from device datasheet.
679e17f71eSDmitry Osipenko
689e17f71eSDmitry Osipenko  tRTP-min-tck:
699e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
709e17f71eSDmitry Osipenko    maximum: 16
719e17f71eSDmitry Osipenko    description: |
729e17f71eSDmitry Osipenko      Internal READ to PRECHARGE command delay in terms of number of clock
739e17f71eSDmitry Osipenko      cycles. Obtained from device datasheet.
749e17f71eSDmitry Osipenko
759e17f71eSDmitry Osipenko  tCKE-min-tck:
769e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
779e17f71eSDmitry Osipenko    maximum: 16
789e17f71eSDmitry Osipenko    description: |
799e17f71eSDmitry Osipenko      CKE minimum pulse width (HIGH and LOW pulse width) in terms of number
809e17f71eSDmitry Osipenko      of clock cycles. Obtained from device datasheet.
819e17f71eSDmitry Osipenko
829e17f71eSDmitry Osipenko  tRPab-min-tck:
839e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
849e17f71eSDmitry Osipenko    maximum: 16
859e17f71eSDmitry Osipenko    description: |
869e17f71eSDmitry Osipenko      Row precharge time (all banks) in terms of number of clock cycles.
879e17f71eSDmitry Osipenko      Obtained from device datasheet.
889e17f71eSDmitry Osipenko
899e17f71eSDmitry Osipenko  tRCD-min-tck:
909e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
919e17f71eSDmitry Osipenko    maximum: 16
929e17f71eSDmitry Osipenko    description: |
939e17f71eSDmitry Osipenko      RAS-to-CAS delay in terms of number of clock cycles. Obtained from
949e17f71eSDmitry Osipenko      device datasheet.
959e17f71eSDmitry Osipenko
969e17f71eSDmitry Osipenko  tWR-min-tck:
979e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
989e17f71eSDmitry Osipenko    maximum: 16
999e17f71eSDmitry Osipenko    description: |
1009e17f71eSDmitry Osipenko      WRITE recovery time in terms of number of clock cycles. Obtained from
1019e17f71eSDmitry Osipenko      device datasheet.
1029e17f71eSDmitry Osipenko
1039e17f71eSDmitry Osipenko  tRASmin-min-tck:
1049e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1059e17f71eSDmitry Osipenko    maximum: 16
1069e17f71eSDmitry Osipenko    description: |
1079e17f71eSDmitry Osipenko      Row active time in terms of number of clock cycles. Obtained from device
1089e17f71eSDmitry Osipenko      datasheet.
1099e17f71eSDmitry Osipenko
1109e17f71eSDmitry Osipenko  tCKESR-min-tck:
1119e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1129e17f71eSDmitry Osipenko    maximum: 16
1139e17f71eSDmitry Osipenko    description: |
1149e17f71eSDmitry Osipenko      CKE minimum pulse width during SELF REFRESH (low pulse width during
1159e17f71eSDmitry Osipenko      SELF REFRESH) in terms of number of clock cycles. Obtained from device
1169e17f71eSDmitry Osipenko      datasheet.
1179e17f71eSDmitry Osipenko
1189e17f71eSDmitry Osipenko  tFAW-min-tck:
1199e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1209e17f71eSDmitry Osipenko    maximum: 16
1219e17f71eSDmitry Osipenko    description: |
1229e17f71eSDmitry Osipenko      Four-bank activate window in terms of number of clock cycles. Obtained
1239e17f71eSDmitry Osipenko      from device datasheet.
1249e17f71eSDmitry Osipenko
1259e17f71eSDmitry OsipenkopatternProperties:
1269e17f71eSDmitry Osipenko  "^lpddr2-timings":
127425fd283SKrzysztof Kozlowski    $ref: jedec,lpddr2-timings.yaml
1289e17f71eSDmitry Osipenko    description: |
1299e17f71eSDmitry Osipenko      The lpddr2 node may have one or more child nodes of type "lpddr2-timings".
1309e17f71eSDmitry Osipenko      "lpddr2-timings" provides AC timing parameters of the device for
1319e17f71eSDmitry Osipenko      a given speed-bin. The user may provide the timings for as many
132425fd283SKrzysztof Kozlowski      speed-bins as is required.
1339e17f71eSDmitry Osipenko
1349e17f71eSDmitry Osipenkorequired:
1359e17f71eSDmitry Osipenko  - compatible
1369e17f71eSDmitry Osipenko  - density
1379e17f71eSDmitry Osipenko  - io-width
1389e17f71eSDmitry Osipenko
139*b7178cd5SJulius WernerunevaluatedProperties: false
1409e17f71eSDmitry Osipenko
1419e17f71eSDmitry Osipenkoexamples:
1429e17f71eSDmitry Osipenko  - |
1439e17f71eSDmitry Osipenko    elpida_ECB240ABACN: lpddr2 {
1449e17f71eSDmitry Osipenko        compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4";
1459e17f71eSDmitry Osipenko        density = <2048>;
1469e17f71eSDmitry Osipenko        io-width = <32>;
14780ce9173SJulius Werner        revision-id = <1 0>;
1489e17f71eSDmitry Osipenko
1499e17f71eSDmitry Osipenko        tRPab-min-tck = <3>;
1509e17f71eSDmitry Osipenko        tRCD-min-tck = <3>;
1519e17f71eSDmitry Osipenko        tWR-min-tck = <3>;
1529e17f71eSDmitry Osipenko        tRASmin-min-tck = <3>;
1539e17f71eSDmitry Osipenko        tRRD-min-tck = <2>;
1549e17f71eSDmitry Osipenko        tWTR-min-tck = <2>;
1559e17f71eSDmitry Osipenko        tXP-min-tck = <2>;
1569e17f71eSDmitry Osipenko        tRTP-min-tck = <2>;
1579e17f71eSDmitry Osipenko        tCKE-min-tck = <3>;
1589e17f71eSDmitry Osipenko        tCKESR-min-tck = <3>;
1599e17f71eSDmitry Osipenko        tFAW-min-tck = <8>;
1609e17f71eSDmitry Osipenko
1619e17f71eSDmitry Osipenko        timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 {
1629e17f71eSDmitry Osipenko            compatible = "jedec,lpddr2-timings";
1639e17f71eSDmitry Osipenko            min-freq = <10000000>;
1649e17f71eSDmitry Osipenko            max-freq = <400000000>;
1659e17f71eSDmitry Osipenko            tRPab = <21000>;
1669e17f71eSDmitry Osipenko            tRCD = <18000>;
1679e17f71eSDmitry Osipenko            tWR = <15000>;
1689e17f71eSDmitry Osipenko            tRAS-min = <42000>;
1699e17f71eSDmitry Osipenko            tRRD = <10000>;
1709e17f71eSDmitry Osipenko            tWTR = <7500>;
1719e17f71eSDmitry Osipenko            tXP = <7500>;
1729e17f71eSDmitry Osipenko            tRTP = <7500>;
1739e17f71eSDmitry Osipenko            tCKESR = <15000>;
1749e17f71eSDmitry Osipenko            tDQSCK-max = <5500>;
1759e17f71eSDmitry Osipenko            tFAW = <50000>;
1769e17f71eSDmitry Osipenko            tZQCS = <90000>;
1779e17f71eSDmitry Osipenko            tZQCL = <360000>;
1789e17f71eSDmitry Osipenko            tZQinit = <1000000>;
1799e17f71eSDmitry Osipenko            tRAS-max-ns = <70000>;
1809e17f71eSDmitry Osipenko        };
1819e17f71eSDmitry Osipenko
1829e17f71eSDmitry Osipenko        timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 {
1839e17f71eSDmitry Osipenko            compatible = "jedec,lpddr2-timings";
1849e17f71eSDmitry Osipenko            min-freq = <10000000>;
1859e17f71eSDmitry Osipenko            max-freq = <200000000>;
1869e17f71eSDmitry Osipenko            tRPab = <21000>;
1879e17f71eSDmitry Osipenko            tRCD = <18000>;
1889e17f71eSDmitry Osipenko            tWR = <15000>;
1899e17f71eSDmitry Osipenko            tRAS-min = <42000>;
1909e17f71eSDmitry Osipenko            tRRD = <10000>;
1919e17f71eSDmitry Osipenko            tWTR = <10000>;
1929e17f71eSDmitry Osipenko            tXP = <7500>;
1939e17f71eSDmitry Osipenko            tRTP = <7500>;
1949e17f71eSDmitry Osipenko            tCKESR = <15000>;
1959e17f71eSDmitry Osipenko            tDQSCK-max = <5500>;
1969e17f71eSDmitry Osipenko            tFAW = <50000>;
1979e17f71eSDmitry Osipenko            tZQCS = <90000>;
1989e17f71eSDmitry Osipenko            tZQCL = <360000>;
1999e17f71eSDmitry Osipenko            tZQinit = <1000000>;
2009e17f71eSDmitry Osipenko            tRAS-max-ns = <70000>;
2019e17f71eSDmitry Osipenko        };
2029e17f71eSDmitry Osipenko    };
203