1*8cc087a1SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8cc087a1SEmmanuel Vadot%YAML 1.2 3*8cc087a1SEmmanuel Vadot--- 4*8cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr2.yaml# 5*8cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8cc087a1SEmmanuel Vadot 7*8cc087a1SEmmanuel Vadottitle: LPDDR2 SDRAM compliant to JEDEC JESD209-2 8*8cc087a1SEmmanuel Vadot 9*8cc087a1SEmmanuel Vadotmaintainers: 10*8cc087a1SEmmanuel Vadot - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> 11*8cc087a1SEmmanuel Vadot 12*8cc087a1SEmmanuel Vadotproperties: 13*8cc087a1SEmmanuel Vadot compatible: 14*8cc087a1SEmmanuel Vadot oneOf: 15*8cc087a1SEmmanuel Vadot - items: 16*8cc087a1SEmmanuel Vadot - enum: 17*8cc087a1SEmmanuel Vadot - elpida,ECB240ABACN 18*8cc087a1SEmmanuel Vadot - elpida,B8132B2PB-6D-F 19*8cc087a1SEmmanuel Vadot - enum: 20*8cc087a1SEmmanuel Vadot - jedec,lpddr2-s4 21*8cc087a1SEmmanuel Vadot - items: 22*8cc087a1SEmmanuel Vadot - enum: 23*8cc087a1SEmmanuel Vadot - jedec,lpddr2-s2 24*8cc087a1SEmmanuel Vadot - items: 25*8cc087a1SEmmanuel Vadot - enum: 26*8cc087a1SEmmanuel Vadot - jedec,lpddr2-nvm 27*8cc087a1SEmmanuel Vadot 28*8cc087a1SEmmanuel Vadot revision-id1: 29*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 30*8cc087a1SEmmanuel Vadot maximum: 255 31*8cc087a1SEmmanuel Vadot description: | 32*8cc087a1SEmmanuel Vadot Revision 1 value of SDRAM chip. Obtained from device datasheet. 33*8cc087a1SEmmanuel Vadot 34*8cc087a1SEmmanuel Vadot revision-id2: 35*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 36*8cc087a1SEmmanuel Vadot maximum: 255 37*8cc087a1SEmmanuel Vadot description: | 38*8cc087a1SEmmanuel Vadot Revision 2 value of SDRAM chip. Obtained from device datasheet. 39*8cc087a1SEmmanuel Vadot 40*8cc087a1SEmmanuel Vadot density: 41*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 42*8cc087a1SEmmanuel Vadot description: | 43*8cc087a1SEmmanuel Vadot Density in megabits of SDRAM chip. Obtained from device datasheet. 44*8cc087a1SEmmanuel Vadot enum: 45*8cc087a1SEmmanuel Vadot - 64 46*8cc087a1SEmmanuel Vadot - 128 47*8cc087a1SEmmanuel Vadot - 256 48*8cc087a1SEmmanuel Vadot - 512 49*8cc087a1SEmmanuel Vadot - 1024 50*8cc087a1SEmmanuel Vadot - 2048 51*8cc087a1SEmmanuel Vadot - 4096 52*8cc087a1SEmmanuel Vadot - 8192 53*8cc087a1SEmmanuel Vadot - 16384 54*8cc087a1SEmmanuel Vadot - 32768 55*8cc087a1SEmmanuel Vadot 56*8cc087a1SEmmanuel Vadot io-width: 57*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 58*8cc087a1SEmmanuel Vadot description: | 59*8cc087a1SEmmanuel Vadot IO bus width in bits of SDRAM chip. Obtained from device datasheet. 60*8cc087a1SEmmanuel Vadot enum: 61*8cc087a1SEmmanuel Vadot - 32 62*8cc087a1SEmmanuel Vadot - 16 63*8cc087a1SEmmanuel Vadot - 8 64*8cc087a1SEmmanuel Vadot 65*8cc087a1SEmmanuel Vadot tRRD-min-tck: 66*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 67*8cc087a1SEmmanuel Vadot maximum: 16 68*8cc087a1SEmmanuel Vadot description: | 69*8cc087a1SEmmanuel Vadot Active bank a to active bank b in terms of number of clock cycles. 70*8cc087a1SEmmanuel Vadot Obtained from device datasheet. 71*8cc087a1SEmmanuel Vadot 72*8cc087a1SEmmanuel Vadot tWTR-min-tck: 73*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 74*8cc087a1SEmmanuel Vadot maximum: 16 75*8cc087a1SEmmanuel Vadot description: | 76*8cc087a1SEmmanuel Vadot Internal WRITE-to-READ command delay in terms of number of clock cycles. 77*8cc087a1SEmmanuel Vadot Obtained from device datasheet. 78*8cc087a1SEmmanuel Vadot 79*8cc087a1SEmmanuel Vadot tXP-min-tck: 80*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 81*8cc087a1SEmmanuel Vadot maximum: 16 82*8cc087a1SEmmanuel Vadot description: | 83*8cc087a1SEmmanuel Vadot Exit power-down to next valid command delay in terms of number of clock 84*8cc087a1SEmmanuel Vadot cycles. Obtained from device datasheet. 85*8cc087a1SEmmanuel Vadot 86*8cc087a1SEmmanuel Vadot tRTP-min-tck: 87*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 88*8cc087a1SEmmanuel Vadot maximum: 16 89*8cc087a1SEmmanuel Vadot description: | 90*8cc087a1SEmmanuel Vadot Internal READ to PRECHARGE command delay in terms of number of clock 91*8cc087a1SEmmanuel Vadot cycles. Obtained from device datasheet. 92*8cc087a1SEmmanuel Vadot 93*8cc087a1SEmmanuel Vadot tCKE-min-tck: 94*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 95*8cc087a1SEmmanuel Vadot maximum: 16 96*8cc087a1SEmmanuel Vadot description: | 97*8cc087a1SEmmanuel Vadot CKE minimum pulse width (HIGH and LOW pulse width) in terms of number 98*8cc087a1SEmmanuel Vadot of clock cycles. Obtained from device datasheet. 99*8cc087a1SEmmanuel Vadot 100*8cc087a1SEmmanuel Vadot tRPab-min-tck: 101*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 102*8cc087a1SEmmanuel Vadot maximum: 16 103*8cc087a1SEmmanuel Vadot description: | 104*8cc087a1SEmmanuel Vadot Row precharge time (all banks) in terms of number of clock cycles. 105*8cc087a1SEmmanuel Vadot Obtained from device datasheet. 106*8cc087a1SEmmanuel Vadot 107*8cc087a1SEmmanuel Vadot tRCD-min-tck: 108*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 109*8cc087a1SEmmanuel Vadot maximum: 16 110*8cc087a1SEmmanuel Vadot description: | 111*8cc087a1SEmmanuel Vadot RAS-to-CAS delay in terms of number of clock cycles. Obtained from 112*8cc087a1SEmmanuel Vadot device datasheet. 113*8cc087a1SEmmanuel Vadot 114*8cc087a1SEmmanuel Vadot tWR-min-tck: 115*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 116*8cc087a1SEmmanuel Vadot maximum: 16 117*8cc087a1SEmmanuel Vadot description: | 118*8cc087a1SEmmanuel Vadot WRITE recovery time in terms of number of clock cycles. Obtained from 119*8cc087a1SEmmanuel Vadot device datasheet. 120*8cc087a1SEmmanuel Vadot 121*8cc087a1SEmmanuel Vadot tRASmin-min-tck: 122*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 123*8cc087a1SEmmanuel Vadot maximum: 16 124*8cc087a1SEmmanuel Vadot description: | 125*8cc087a1SEmmanuel Vadot Row active time in terms of number of clock cycles. Obtained from device 126*8cc087a1SEmmanuel Vadot datasheet. 127*8cc087a1SEmmanuel Vadot 128*8cc087a1SEmmanuel Vadot tCKESR-min-tck: 129*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 130*8cc087a1SEmmanuel Vadot maximum: 16 131*8cc087a1SEmmanuel Vadot description: | 132*8cc087a1SEmmanuel Vadot CKE minimum pulse width during SELF REFRESH (low pulse width during 133*8cc087a1SEmmanuel Vadot SELF REFRESH) in terms of number of clock cycles. Obtained from device 134*8cc087a1SEmmanuel Vadot datasheet. 135*8cc087a1SEmmanuel Vadot 136*8cc087a1SEmmanuel Vadot tFAW-min-tck: 137*8cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 138*8cc087a1SEmmanuel Vadot maximum: 16 139*8cc087a1SEmmanuel Vadot description: | 140*8cc087a1SEmmanuel Vadot Four-bank activate window in terms of number of clock cycles. Obtained 141*8cc087a1SEmmanuel Vadot from device datasheet. 142*8cc087a1SEmmanuel Vadot 143*8cc087a1SEmmanuel VadotpatternProperties: 144*8cc087a1SEmmanuel Vadot "^lpddr2-timings": 145*8cc087a1SEmmanuel Vadot type: object 146*8cc087a1SEmmanuel Vadot description: | 147*8cc087a1SEmmanuel Vadot The lpddr2 node may have one or more child nodes of type "lpddr2-timings". 148*8cc087a1SEmmanuel Vadot "lpddr2-timings" provides AC timing parameters of the device for 149*8cc087a1SEmmanuel Vadot a given speed-bin. The user may provide the timings for as many 150*8cc087a1SEmmanuel Vadot speed-bins as is required. Please see Documentation/devicetree/ 151*8cc087a1SEmmanuel Vadot bindings/memory-controllers/ddr/lpddr2-timings.txt for more information 152*8cc087a1SEmmanuel Vadot on "lpddr2-timings". 153*8cc087a1SEmmanuel Vadot 154*8cc087a1SEmmanuel Vadotrequired: 155*8cc087a1SEmmanuel Vadot - compatible 156*8cc087a1SEmmanuel Vadot - density 157*8cc087a1SEmmanuel Vadot - io-width 158*8cc087a1SEmmanuel Vadot 159*8cc087a1SEmmanuel VadotadditionalProperties: false 160*8cc087a1SEmmanuel Vadot 161*8cc087a1SEmmanuel Vadotexamples: 162*8cc087a1SEmmanuel Vadot - | 163*8cc087a1SEmmanuel Vadot elpida_ECB240ABACN: lpddr2 { 164*8cc087a1SEmmanuel Vadot compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4"; 165*8cc087a1SEmmanuel Vadot density = <2048>; 166*8cc087a1SEmmanuel Vadot io-width = <32>; 167*8cc087a1SEmmanuel Vadot revision-id1 = <1>; 168*8cc087a1SEmmanuel Vadot revision-id2 = <0>; 169*8cc087a1SEmmanuel Vadot 170*8cc087a1SEmmanuel Vadot tRPab-min-tck = <3>; 171*8cc087a1SEmmanuel Vadot tRCD-min-tck = <3>; 172*8cc087a1SEmmanuel Vadot tWR-min-tck = <3>; 173*8cc087a1SEmmanuel Vadot tRASmin-min-tck = <3>; 174*8cc087a1SEmmanuel Vadot tRRD-min-tck = <2>; 175*8cc087a1SEmmanuel Vadot tWTR-min-tck = <2>; 176*8cc087a1SEmmanuel Vadot tXP-min-tck = <2>; 177*8cc087a1SEmmanuel Vadot tRTP-min-tck = <2>; 178*8cc087a1SEmmanuel Vadot tCKE-min-tck = <3>; 179*8cc087a1SEmmanuel Vadot tCKESR-min-tck = <3>; 180*8cc087a1SEmmanuel Vadot tFAW-min-tck = <8>; 181*8cc087a1SEmmanuel Vadot 182*8cc087a1SEmmanuel Vadot timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 { 183*8cc087a1SEmmanuel Vadot compatible = "jedec,lpddr2-timings"; 184*8cc087a1SEmmanuel Vadot min-freq = <10000000>; 185*8cc087a1SEmmanuel Vadot max-freq = <400000000>; 186*8cc087a1SEmmanuel Vadot tRPab = <21000>; 187*8cc087a1SEmmanuel Vadot tRCD = <18000>; 188*8cc087a1SEmmanuel Vadot tWR = <15000>; 189*8cc087a1SEmmanuel Vadot tRAS-min = <42000>; 190*8cc087a1SEmmanuel Vadot tRRD = <10000>; 191*8cc087a1SEmmanuel Vadot tWTR = <7500>; 192*8cc087a1SEmmanuel Vadot tXP = <7500>; 193*8cc087a1SEmmanuel Vadot tRTP = <7500>; 194*8cc087a1SEmmanuel Vadot tCKESR = <15000>; 195*8cc087a1SEmmanuel Vadot tDQSCK-max = <5500>; 196*8cc087a1SEmmanuel Vadot tFAW = <50000>; 197*8cc087a1SEmmanuel Vadot tZQCS = <90000>; 198*8cc087a1SEmmanuel Vadot tZQCL = <360000>; 199*8cc087a1SEmmanuel Vadot tZQinit = <1000000>; 200*8cc087a1SEmmanuel Vadot tRAS-max-ns = <70000>; 201*8cc087a1SEmmanuel Vadot }; 202*8cc087a1SEmmanuel Vadot 203*8cc087a1SEmmanuel Vadot timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 { 204*8cc087a1SEmmanuel Vadot compatible = "jedec,lpddr2-timings"; 205*8cc087a1SEmmanuel Vadot min-freq = <10000000>; 206*8cc087a1SEmmanuel Vadot max-freq = <200000000>; 207*8cc087a1SEmmanuel Vadot tRPab = <21000>; 208*8cc087a1SEmmanuel Vadot tRCD = <18000>; 209*8cc087a1SEmmanuel Vadot tWR = <15000>; 210*8cc087a1SEmmanuel Vadot tRAS-min = <42000>; 211*8cc087a1SEmmanuel Vadot tRRD = <10000>; 212*8cc087a1SEmmanuel Vadot tWTR = <10000>; 213*8cc087a1SEmmanuel Vadot tXP = <7500>; 214*8cc087a1SEmmanuel Vadot tRTP = <7500>; 215*8cc087a1SEmmanuel Vadot tCKESR = <15000>; 216*8cc087a1SEmmanuel Vadot tDQSCK-max = <5500>; 217*8cc087a1SEmmanuel Vadot tFAW = <50000>; 218*8cc087a1SEmmanuel Vadot tZQCS = <90000>; 219*8cc087a1SEmmanuel Vadot tZQCL = <360000>; 220*8cc087a1SEmmanuel Vadot tZQinit = <1000000>; 221*8cc087a1SEmmanuel Vadot tRAS-max-ns = <70000>; 222*8cc087a1SEmmanuel Vadot }; 223*8cc087a1SEmmanuel Vadot }; 224