xref: /freebsd-src/sys/contrib/device-tree/Bindings/memory-controllers/ddr/jedec,lpddr2.yaml (revision c9ccf3a32da427475985b85d7df023ccfb138c27)
18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28cc087a1SEmmanuel Vadot%YAML 1.2
38cc087a1SEmmanuel Vadot---
48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr2.yaml#
58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68cc087a1SEmmanuel Vadot
78cc087a1SEmmanuel Vadottitle: LPDDR2 SDRAM compliant to JEDEC JESD209-2
88cc087a1SEmmanuel Vadot
98cc087a1SEmmanuel Vadotmaintainers:
10*c9ccf3a3SEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
118cc087a1SEmmanuel Vadot
128cc087a1SEmmanuel Vadotproperties:
138cc087a1SEmmanuel Vadot  compatible:
148cc087a1SEmmanuel Vadot    oneOf:
158cc087a1SEmmanuel Vadot      - items:
168cc087a1SEmmanuel Vadot          - enum:
178cc087a1SEmmanuel Vadot              - elpida,ECB240ABACN
188cc087a1SEmmanuel Vadot              - elpida,B8132B2PB-6D-F
198cc087a1SEmmanuel Vadot          - enum:
208cc087a1SEmmanuel Vadot              - jedec,lpddr2-s4
218cc087a1SEmmanuel Vadot      - items:
228cc087a1SEmmanuel Vadot          - enum:
238cc087a1SEmmanuel Vadot              - jedec,lpddr2-s2
248cc087a1SEmmanuel Vadot      - items:
258cc087a1SEmmanuel Vadot          - enum:
268cc087a1SEmmanuel Vadot              - jedec,lpddr2-nvm
278cc087a1SEmmanuel Vadot
288cc087a1SEmmanuel Vadot  revision-id1:
298cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
308cc087a1SEmmanuel Vadot    maximum: 255
318cc087a1SEmmanuel Vadot    description: |
328cc087a1SEmmanuel Vadot      Revision 1 value of SDRAM chip. Obtained from device datasheet.
33*c9ccf3a3SEmmanuel Vadot      Property is deprecated, use revision-id instead.
34*c9ccf3a3SEmmanuel Vadot    deprecated: true
358cc087a1SEmmanuel Vadot
368cc087a1SEmmanuel Vadot  revision-id2:
378cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
388cc087a1SEmmanuel Vadot    maximum: 255
398cc087a1SEmmanuel Vadot    description: |
408cc087a1SEmmanuel Vadot      Revision 2 value of SDRAM chip. Obtained from device datasheet.
41*c9ccf3a3SEmmanuel Vadot      Property is deprecated, use revision-id instead.
42*c9ccf3a3SEmmanuel Vadot    deprecated: true
43*c9ccf3a3SEmmanuel Vadot
44*c9ccf3a3SEmmanuel Vadot  revision-id:
45*c9ccf3a3SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
46*c9ccf3a3SEmmanuel Vadot    description: |
47*c9ccf3a3SEmmanuel Vadot      Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
48*c9ccf3a3SEmmanuel Vadot    minItems: 2
49*c9ccf3a3SEmmanuel Vadot    maxItems: 2
50*c9ccf3a3SEmmanuel Vadot    items:
51*c9ccf3a3SEmmanuel Vadot      minimum: 0
52*c9ccf3a3SEmmanuel Vadot      maximum: 255
538cc087a1SEmmanuel Vadot
548cc087a1SEmmanuel Vadot  density:
558cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
568cc087a1SEmmanuel Vadot    description: |
578cc087a1SEmmanuel Vadot      Density in megabits of SDRAM chip. Obtained from device datasheet.
588cc087a1SEmmanuel Vadot    enum:
598cc087a1SEmmanuel Vadot      - 64
608cc087a1SEmmanuel Vadot      - 128
618cc087a1SEmmanuel Vadot      - 256
628cc087a1SEmmanuel Vadot      - 512
638cc087a1SEmmanuel Vadot      - 1024
648cc087a1SEmmanuel Vadot      - 2048
658cc087a1SEmmanuel Vadot      - 4096
668cc087a1SEmmanuel Vadot      - 8192
678cc087a1SEmmanuel Vadot      - 16384
688cc087a1SEmmanuel Vadot      - 32768
698cc087a1SEmmanuel Vadot
708cc087a1SEmmanuel Vadot  io-width:
718cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
728cc087a1SEmmanuel Vadot    description: |
738cc087a1SEmmanuel Vadot      IO bus width in bits of SDRAM chip. Obtained from device datasheet.
748cc087a1SEmmanuel Vadot    enum:
758cc087a1SEmmanuel Vadot      - 32
768cc087a1SEmmanuel Vadot      - 16
778cc087a1SEmmanuel Vadot      - 8
788cc087a1SEmmanuel Vadot
798cc087a1SEmmanuel Vadot  tRRD-min-tck:
808cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
818cc087a1SEmmanuel Vadot    maximum: 16
828cc087a1SEmmanuel Vadot    description: |
838cc087a1SEmmanuel Vadot      Active bank a to active bank b in terms of number of clock cycles.
848cc087a1SEmmanuel Vadot      Obtained from device datasheet.
858cc087a1SEmmanuel Vadot
868cc087a1SEmmanuel Vadot  tWTR-min-tck:
878cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
888cc087a1SEmmanuel Vadot    maximum: 16
898cc087a1SEmmanuel Vadot    description: |
908cc087a1SEmmanuel Vadot      Internal WRITE-to-READ command delay in terms of number of clock cycles.
918cc087a1SEmmanuel Vadot      Obtained from device datasheet.
928cc087a1SEmmanuel Vadot
938cc087a1SEmmanuel Vadot  tXP-min-tck:
948cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
958cc087a1SEmmanuel Vadot    maximum: 16
968cc087a1SEmmanuel Vadot    description: |
978cc087a1SEmmanuel Vadot      Exit power-down to next valid command delay in terms of number of clock
988cc087a1SEmmanuel Vadot      cycles. Obtained from device datasheet.
998cc087a1SEmmanuel Vadot
1008cc087a1SEmmanuel Vadot  tRTP-min-tck:
1018cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1028cc087a1SEmmanuel Vadot    maximum: 16
1038cc087a1SEmmanuel Vadot    description: |
1048cc087a1SEmmanuel Vadot      Internal READ to PRECHARGE command delay in terms of number of clock
1058cc087a1SEmmanuel Vadot      cycles. Obtained from device datasheet.
1068cc087a1SEmmanuel Vadot
1078cc087a1SEmmanuel Vadot  tCKE-min-tck:
1088cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1098cc087a1SEmmanuel Vadot    maximum: 16
1108cc087a1SEmmanuel Vadot    description: |
1118cc087a1SEmmanuel Vadot      CKE minimum pulse width (HIGH and LOW pulse width) in terms of number
1128cc087a1SEmmanuel Vadot      of clock cycles. Obtained from device datasheet.
1138cc087a1SEmmanuel Vadot
1148cc087a1SEmmanuel Vadot  tRPab-min-tck:
1158cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1168cc087a1SEmmanuel Vadot    maximum: 16
1178cc087a1SEmmanuel Vadot    description: |
1188cc087a1SEmmanuel Vadot      Row precharge time (all banks) in terms of number of clock cycles.
1198cc087a1SEmmanuel Vadot      Obtained from device datasheet.
1208cc087a1SEmmanuel Vadot
1218cc087a1SEmmanuel Vadot  tRCD-min-tck:
1228cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1238cc087a1SEmmanuel Vadot    maximum: 16
1248cc087a1SEmmanuel Vadot    description: |
1258cc087a1SEmmanuel Vadot      RAS-to-CAS delay in terms of number of clock cycles. Obtained from
1268cc087a1SEmmanuel Vadot      device datasheet.
1278cc087a1SEmmanuel Vadot
1288cc087a1SEmmanuel Vadot  tWR-min-tck:
1298cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1308cc087a1SEmmanuel Vadot    maximum: 16
1318cc087a1SEmmanuel Vadot    description: |
1328cc087a1SEmmanuel Vadot      WRITE recovery time in terms of number of clock cycles. Obtained from
1338cc087a1SEmmanuel Vadot      device datasheet.
1348cc087a1SEmmanuel Vadot
1358cc087a1SEmmanuel Vadot  tRASmin-min-tck:
1368cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1378cc087a1SEmmanuel Vadot    maximum: 16
1388cc087a1SEmmanuel Vadot    description: |
1398cc087a1SEmmanuel Vadot      Row active time in terms of number of clock cycles. Obtained from device
1408cc087a1SEmmanuel Vadot      datasheet.
1418cc087a1SEmmanuel Vadot
1428cc087a1SEmmanuel Vadot  tCKESR-min-tck:
1438cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1448cc087a1SEmmanuel Vadot    maximum: 16
1458cc087a1SEmmanuel Vadot    description: |
1468cc087a1SEmmanuel Vadot      CKE minimum pulse width during SELF REFRESH (low pulse width during
1478cc087a1SEmmanuel Vadot      SELF REFRESH) in terms of number of clock cycles. Obtained from device
1488cc087a1SEmmanuel Vadot      datasheet.
1498cc087a1SEmmanuel Vadot
1508cc087a1SEmmanuel Vadot  tFAW-min-tck:
1518cc087a1SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
1528cc087a1SEmmanuel Vadot    maximum: 16
1538cc087a1SEmmanuel Vadot    description: |
1548cc087a1SEmmanuel Vadot      Four-bank activate window in terms of number of clock cycles. Obtained
1558cc087a1SEmmanuel Vadot      from device datasheet.
1568cc087a1SEmmanuel Vadot
1578cc087a1SEmmanuel VadotpatternProperties:
1588cc087a1SEmmanuel Vadot  "^lpddr2-timings":
159*c9ccf3a3SEmmanuel Vadot    $ref: jedec,lpddr2-timings.yaml
1608cc087a1SEmmanuel Vadot    description: |
1618cc087a1SEmmanuel Vadot      The lpddr2 node may have one or more child nodes of type "lpddr2-timings".
1628cc087a1SEmmanuel Vadot      "lpddr2-timings" provides AC timing parameters of the device for
1638cc087a1SEmmanuel Vadot      a given speed-bin. The user may provide the timings for as many
164*c9ccf3a3SEmmanuel Vadot      speed-bins as is required.
1658cc087a1SEmmanuel Vadot
1668cc087a1SEmmanuel Vadotrequired:
1678cc087a1SEmmanuel Vadot  - compatible
1688cc087a1SEmmanuel Vadot  - density
1698cc087a1SEmmanuel Vadot  - io-width
1708cc087a1SEmmanuel Vadot
1718cc087a1SEmmanuel VadotadditionalProperties: false
1728cc087a1SEmmanuel Vadot
1738cc087a1SEmmanuel Vadotexamples:
1748cc087a1SEmmanuel Vadot  - |
1758cc087a1SEmmanuel Vadot    elpida_ECB240ABACN: lpddr2 {
1768cc087a1SEmmanuel Vadot        compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4";
1778cc087a1SEmmanuel Vadot        density = <2048>;
1788cc087a1SEmmanuel Vadot        io-width = <32>;
179*c9ccf3a3SEmmanuel Vadot        revision-id = <1 0>;
1808cc087a1SEmmanuel Vadot
1818cc087a1SEmmanuel Vadot        tRPab-min-tck = <3>;
1828cc087a1SEmmanuel Vadot        tRCD-min-tck = <3>;
1838cc087a1SEmmanuel Vadot        tWR-min-tck = <3>;
1848cc087a1SEmmanuel Vadot        tRASmin-min-tck = <3>;
1858cc087a1SEmmanuel Vadot        tRRD-min-tck = <2>;
1868cc087a1SEmmanuel Vadot        tWTR-min-tck = <2>;
1878cc087a1SEmmanuel Vadot        tXP-min-tck = <2>;
1888cc087a1SEmmanuel Vadot        tRTP-min-tck = <2>;
1898cc087a1SEmmanuel Vadot        tCKE-min-tck = <3>;
1908cc087a1SEmmanuel Vadot        tCKESR-min-tck = <3>;
1918cc087a1SEmmanuel Vadot        tFAW-min-tck = <8>;
1928cc087a1SEmmanuel Vadot
1938cc087a1SEmmanuel Vadot        timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 {
1948cc087a1SEmmanuel Vadot            compatible = "jedec,lpddr2-timings";
1958cc087a1SEmmanuel Vadot            min-freq = <10000000>;
1968cc087a1SEmmanuel Vadot            max-freq = <400000000>;
1978cc087a1SEmmanuel Vadot            tRPab = <21000>;
1988cc087a1SEmmanuel Vadot            tRCD = <18000>;
1998cc087a1SEmmanuel Vadot            tWR = <15000>;
2008cc087a1SEmmanuel Vadot            tRAS-min = <42000>;
2018cc087a1SEmmanuel Vadot            tRRD = <10000>;
2028cc087a1SEmmanuel Vadot            tWTR = <7500>;
2038cc087a1SEmmanuel Vadot            tXP = <7500>;
2048cc087a1SEmmanuel Vadot            tRTP = <7500>;
2058cc087a1SEmmanuel Vadot            tCKESR = <15000>;
2068cc087a1SEmmanuel Vadot            tDQSCK-max = <5500>;
2078cc087a1SEmmanuel Vadot            tFAW = <50000>;
2088cc087a1SEmmanuel Vadot            tZQCS = <90000>;
2098cc087a1SEmmanuel Vadot            tZQCL = <360000>;
2108cc087a1SEmmanuel Vadot            tZQinit = <1000000>;
2118cc087a1SEmmanuel Vadot            tRAS-max-ns = <70000>;
2128cc087a1SEmmanuel Vadot        };
2138cc087a1SEmmanuel Vadot
2148cc087a1SEmmanuel Vadot        timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 {
2158cc087a1SEmmanuel Vadot            compatible = "jedec,lpddr2-timings";
2168cc087a1SEmmanuel Vadot            min-freq = <10000000>;
2178cc087a1SEmmanuel Vadot            max-freq = <200000000>;
2188cc087a1SEmmanuel Vadot            tRPab = <21000>;
2198cc087a1SEmmanuel Vadot            tRCD = <18000>;
2208cc087a1SEmmanuel Vadot            tWR = <15000>;
2218cc087a1SEmmanuel Vadot            tRAS-min = <42000>;
2228cc087a1SEmmanuel Vadot            tRRD = <10000>;
2238cc087a1SEmmanuel Vadot            tWTR = <10000>;
2248cc087a1SEmmanuel Vadot            tXP = <7500>;
2258cc087a1SEmmanuel Vadot            tRTP = <7500>;
2268cc087a1SEmmanuel Vadot            tCKESR = <15000>;
2278cc087a1SEmmanuel Vadot            tDQSCK-max = <5500>;
2288cc087a1SEmmanuel Vadot            tFAW = <50000>;
2298cc087a1SEmmanuel Vadot            tZQCS = <90000>;
2308cc087a1SEmmanuel Vadot            tZQCL = <360000>;
2318cc087a1SEmmanuel Vadot            tZQinit = <1000000>;
2328cc087a1SEmmanuel Vadot            tRAS-max-ns = <70000>;
2338cc087a1SEmmanuel Vadot        };
2348cc087a1SEmmanuel Vadot    };
235