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