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