xref: /linux/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml (revision 425fd283e4a2b929a88483525fda3f90dde8a2d0)
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:
109e17f71eSDmitry Osipenko  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
119e17f71eSDmitry Osipenko
129e17f71eSDmitry Osipenkoproperties:
139e17f71eSDmitry Osipenko  compatible:
149e17f71eSDmitry Osipenko    oneOf:
159e17f71eSDmitry Osipenko      - items:
169e17f71eSDmitry Osipenko          - enum:
179e17f71eSDmitry Osipenko              - elpida,ECB240ABACN
182782ece0SDmitry Osipenko              - elpida,B8132B2PB-6D-F
199e17f71eSDmitry Osipenko          - enum:
209e17f71eSDmitry Osipenko              - jedec,lpddr2-s4
219e17f71eSDmitry Osipenko      - items:
229e17f71eSDmitry Osipenko          - enum:
239e17f71eSDmitry Osipenko              - jedec,lpddr2-s2
249e17f71eSDmitry Osipenko      - items:
259e17f71eSDmitry Osipenko          - enum:
269e17f71eSDmitry Osipenko              - jedec,lpddr2-nvm
279e17f71eSDmitry Osipenko
283539a2c6SDmitry Osipenko  revision-id1:
293539a2c6SDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
303539a2c6SDmitry Osipenko    maximum: 255
313539a2c6SDmitry Osipenko    description: |
323539a2c6SDmitry Osipenko      Revision 1 value of SDRAM chip. Obtained from device datasheet.
333539a2c6SDmitry Osipenko
343539a2c6SDmitry Osipenko  revision-id2:
353539a2c6SDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
363539a2c6SDmitry Osipenko    maximum: 255
373539a2c6SDmitry Osipenko    description: |
383539a2c6SDmitry Osipenko      Revision 2 value of SDRAM chip. Obtained from device datasheet.
393539a2c6SDmitry Osipenko
409e17f71eSDmitry Osipenko  density:
419e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
429e17f71eSDmitry Osipenko    description: |
439e17f71eSDmitry Osipenko      Density in megabits of SDRAM chip. Obtained from device datasheet.
449e17f71eSDmitry Osipenko    enum:
459e17f71eSDmitry Osipenko      - 64
469e17f71eSDmitry Osipenko      - 128
479e17f71eSDmitry Osipenko      - 256
489e17f71eSDmitry Osipenko      - 512
499e17f71eSDmitry Osipenko      - 1024
509e17f71eSDmitry Osipenko      - 2048
519e17f71eSDmitry Osipenko      - 4096
529e17f71eSDmitry Osipenko      - 8192
539e17f71eSDmitry Osipenko      - 16384
549e17f71eSDmitry Osipenko      - 32768
559e17f71eSDmitry Osipenko
569e17f71eSDmitry Osipenko  io-width:
579e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
589e17f71eSDmitry Osipenko    description: |
599e17f71eSDmitry Osipenko      IO bus width in bits of SDRAM chip. Obtained from device datasheet.
609e17f71eSDmitry Osipenko    enum:
619e17f71eSDmitry Osipenko      - 32
629e17f71eSDmitry Osipenko      - 16
639e17f71eSDmitry Osipenko      - 8
649e17f71eSDmitry Osipenko
659e17f71eSDmitry Osipenko  tRRD-min-tck:
669e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
679e17f71eSDmitry Osipenko    maximum: 16
689e17f71eSDmitry Osipenko    description: |
699e17f71eSDmitry Osipenko      Active bank a to active bank b in terms of number of clock cycles.
709e17f71eSDmitry Osipenko      Obtained from device datasheet.
719e17f71eSDmitry Osipenko
729e17f71eSDmitry Osipenko  tWTR-min-tck:
739e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
749e17f71eSDmitry Osipenko    maximum: 16
759e17f71eSDmitry Osipenko    description: |
769e17f71eSDmitry Osipenko      Internal WRITE-to-READ command delay in terms of number of clock cycles.
779e17f71eSDmitry Osipenko      Obtained from device datasheet.
789e17f71eSDmitry Osipenko
799e17f71eSDmitry Osipenko  tXP-min-tck:
809e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
819e17f71eSDmitry Osipenko    maximum: 16
829e17f71eSDmitry Osipenko    description: |
839e17f71eSDmitry Osipenko      Exit power-down to next valid command delay in terms of number of clock
849e17f71eSDmitry Osipenko      cycles. Obtained from device datasheet.
859e17f71eSDmitry Osipenko
869e17f71eSDmitry Osipenko  tRTP-min-tck:
879e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
889e17f71eSDmitry Osipenko    maximum: 16
899e17f71eSDmitry Osipenko    description: |
909e17f71eSDmitry Osipenko      Internal READ to PRECHARGE command delay in terms of number of clock
919e17f71eSDmitry Osipenko      cycles. Obtained from device datasheet.
929e17f71eSDmitry Osipenko
939e17f71eSDmitry Osipenko  tCKE-min-tck:
949e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
959e17f71eSDmitry Osipenko    maximum: 16
969e17f71eSDmitry Osipenko    description: |
979e17f71eSDmitry Osipenko      CKE minimum pulse width (HIGH and LOW pulse width) in terms of number
989e17f71eSDmitry Osipenko      of clock cycles. Obtained from device datasheet.
999e17f71eSDmitry Osipenko
1009e17f71eSDmitry Osipenko  tRPab-min-tck:
1019e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1029e17f71eSDmitry Osipenko    maximum: 16
1039e17f71eSDmitry Osipenko    description: |
1049e17f71eSDmitry Osipenko      Row precharge time (all banks) in terms of number of clock cycles.
1059e17f71eSDmitry Osipenko      Obtained from device datasheet.
1069e17f71eSDmitry Osipenko
1079e17f71eSDmitry Osipenko  tRCD-min-tck:
1089e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1099e17f71eSDmitry Osipenko    maximum: 16
1109e17f71eSDmitry Osipenko    description: |
1119e17f71eSDmitry Osipenko      RAS-to-CAS delay in terms of number of clock cycles. Obtained from
1129e17f71eSDmitry Osipenko      device datasheet.
1139e17f71eSDmitry Osipenko
1149e17f71eSDmitry Osipenko  tWR-min-tck:
1159e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1169e17f71eSDmitry Osipenko    maximum: 16
1179e17f71eSDmitry Osipenko    description: |
1189e17f71eSDmitry Osipenko      WRITE recovery time in terms of number of clock cycles. Obtained from
1199e17f71eSDmitry Osipenko      device datasheet.
1209e17f71eSDmitry Osipenko
1219e17f71eSDmitry Osipenko  tRASmin-min-tck:
1229e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1239e17f71eSDmitry Osipenko    maximum: 16
1249e17f71eSDmitry Osipenko    description: |
1259e17f71eSDmitry Osipenko      Row active time in terms of number of clock cycles. Obtained from device
1269e17f71eSDmitry Osipenko      datasheet.
1279e17f71eSDmitry Osipenko
1289e17f71eSDmitry Osipenko  tCKESR-min-tck:
1299e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1309e17f71eSDmitry Osipenko    maximum: 16
1319e17f71eSDmitry Osipenko    description: |
1329e17f71eSDmitry Osipenko      CKE minimum pulse width during SELF REFRESH (low pulse width during
1339e17f71eSDmitry Osipenko      SELF REFRESH) in terms of number of clock cycles. Obtained from device
1349e17f71eSDmitry Osipenko      datasheet.
1359e17f71eSDmitry Osipenko
1369e17f71eSDmitry Osipenko  tFAW-min-tck:
1379e17f71eSDmitry Osipenko    $ref: /schemas/types.yaml#/definitions/uint32
1389e17f71eSDmitry Osipenko    maximum: 16
1399e17f71eSDmitry Osipenko    description: |
1409e17f71eSDmitry Osipenko      Four-bank activate window in terms of number of clock cycles. Obtained
1419e17f71eSDmitry Osipenko      from device datasheet.
1429e17f71eSDmitry Osipenko
1439e17f71eSDmitry OsipenkopatternProperties:
1449e17f71eSDmitry Osipenko  "^lpddr2-timings":
145*425fd283SKrzysztof Kozlowski    $ref: jedec,lpddr2-timings.yaml
1469e17f71eSDmitry Osipenko    description: |
1479e17f71eSDmitry Osipenko      The lpddr2 node may have one or more child nodes of type "lpddr2-timings".
1489e17f71eSDmitry Osipenko      "lpddr2-timings" provides AC timing parameters of the device for
1499e17f71eSDmitry Osipenko      a given speed-bin. The user may provide the timings for as many
150*425fd283SKrzysztof Kozlowski      speed-bins as is required.
1519e17f71eSDmitry Osipenko
1529e17f71eSDmitry Osipenkorequired:
1539e17f71eSDmitry Osipenko  - compatible
1549e17f71eSDmitry Osipenko  - density
1559e17f71eSDmitry Osipenko  - io-width
1569e17f71eSDmitry Osipenko
1579e17f71eSDmitry OsipenkoadditionalProperties: false
1589e17f71eSDmitry Osipenko
1599e17f71eSDmitry Osipenkoexamples:
1609e17f71eSDmitry Osipenko  - |
1619e17f71eSDmitry Osipenko    elpida_ECB240ABACN: lpddr2 {
1629e17f71eSDmitry Osipenko        compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4";
1639e17f71eSDmitry Osipenko        density = <2048>;
1649e17f71eSDmitry Osipenko        io-width = <32>;
1653539a2c6SDmitry Osipenko        revision-id1 = <1>;
1663539a2c6SDmitry Osipenko        revision-id2 = <0>;
1679e17f71eSDmitry Osipenko
1689e17f71eSDmitry Osipenko        tRPab-min-tck = <3>;
1699e17f71eSDmitry Osipenko        tRCD-min-tck = <3>;
1709e17f71eSDmitry Osipenko        tWR-min-tck = <3>;
1719e17f71eSDmitry Osipenko        tRASmin-min-tck = <3>;
1729e17f71eSDmitry Osipenko        tRRD-min-tck = <2>;
1739e17f71eSDmitry Osipenko        tWTR-min-tck = <2>;
1749e17f71eSDmitry Osipenko        tXP-min-tck = <2>;
1759e17f71eSDmitry Osipenko        tRTP-min-tck = <2>;
1769e17f71eSDmitry Osipenko        tCKE-min-tck = <3>;
1779e17f71eSDmitry Osipenko        tCKESR-min-tck = <3>;
1789e17f71eSDmitry Osipenko        tFAW-min-tck = <8>;
1799e17f71eSDmitry Osipenko
1809e17f71eSDmitry Osipenko        timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 {
1819e17f71eSDmitry Osipenko            compatible = "jedec,lpddr2-timings";
1829e17f71eSDmitry Osipenko            min-freq = <10000000>;
1839e17f71eSDmitry Osipenko            max-freq = <400000000>;
1849e17f71eSDmitry Osipenko            tRPab = <21000>;
1859e17f71eSDmitry Osipenko            tRCD = <18000>;
1869e17f71eSDmitry Osipenko            tWR = <15000>;
1879e17f71eSDmitry Osipenko            tRAS-min = <42000>;
1889e17f71eSDmitry Osipenko            tRRD = <10000>;
1899e17f71eSDmitry Osipenko            tWTR = <7500>;
1909e17f71eSDmitry Osipenko            tXP = <7500>;
1919e17f71eSDmitry Osipenko            tRTP = <7500>;
1929e17f71eSDmitry Osipenko            tCKESR = <15000>;
1939e17f71eSDmitry Osipenko            tDQSCK-max = <5500>;
1949e17f71eSDmitry Osipenko            tFAW = <50000>;
1959e17f71eSDmitry Osipenko            tZQCS = <90000>;
1969e17f71eSDmitry Osipenko            tZQCL = <360000>;
1979e17f71eSDmitry Osipenko            tZQinit = <1000000>;
1989e17f71eSDmitry Osipenko            tRAS-max-ns = <70000>;
1999e17f71eSDmitry Osipenko        };
2009e17f71eSDmitry Osipenko
2019e17f71eSDmitry Osipenko        timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 {
2029e17f71eSDmitry Osipenko            compatible = "jedec,lpddr2-timings";
2039e17f71eSDmitry Osipenko            min-freq = <10000000>;
2049e17f71eSDmitry Osipenko            max-freq = <200000000>;
2059e17f71eSDmitry Osipenko            tRPab = <21000>;
2069e17f71eSDmitry Osipenko            tRCD = <18000>;
2079e17f71eSDmitry Osipenko            tWR = <15000>;
2089e17f71eSDmitry Osipenko            tRAS-min = <42000>;
2099e17f71eSDmitry Osipenko            tRRD = <10000>;
2109e17f71eSDmitry Osipenko            tWTR = <10000>;
2119e17f71eSDmitry Osipenko            tXP = <7500>;
2129e17f71eSDmitry Osipenko            tRTP = <7500>;
2139e17f71eSDmitry Osipenko            tCKESR = <15000>;
2149e17f71eSDmitry Osipenko            tDQSCK-max = <5500>;
2159e17f71eSDmitry Osipenko            tFAW = <50000>;
2169e17f71eSDmitry Osipenko            tZQCS = <90000>;
2179e17f71eSDmitry Osipenko            tZQCL = <360000>;
2189e17f71eSDmitry Osipenko            tZQinit = <1000000>;
2199e17f71eSDmitry Osipenko            tRAS-max-ns = <70000>;
2209e17f71eSDmitry Osipenko        };
2219e17f71eSDmitry Osipenko    };
222