1*c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c9ccf3a3SEmmanuel Vadot%YAML 1.2 3*c9ccf3a3SEmmanuel Vadot--- 4*c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr3.yaml# 5*c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c9ccf3a3SEmmanuel Vadot 7*c9ccf3a3SEmmanuel Vadottitle: LPDDR3 SDRAM compliant to JEDEC JESD209-3 8*c9ccf3a3SEmmanuel Vadot 9*c9ccf3a3SEmmanuel Vadotmaintainers: 10*c9ccf3a3SEmmanuel Vadot - Krzysztof Kozlowski <krzk@kernel.org> 11*c9ccf3a3SEmmanuel Vadot 12*c9ccf3a3SEmmanuel Vadotproperties: 13*c9ccf3a3SEmmanuel Vadot compatible: 14*c9ccf3a3SEmmanuel Vadot items: 15*c9ccf3a3SEmmanuel Vadot - enum: 16*c9ccf3a3SEmmanuel Vadot - samsung,K3QF2F20DB 17*c9ccf3a3SEmmanuel Vadot - const: jedec,lpddr3 18*c9ccf3a3SEmmanuel Vadot 19*c9ccf3a3SEmmanuel Vadot '#address-cells': 20*c9ccf3a3SEmmanuel Vadot const: 1 21*c9ccf3a3SEmmanuel Vadot deprecated: true 22*c9ccf3a3SEmmanuel Vadot 23*c9ccf3a3SEmmanuel Vadot density: 24*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 25*c9ccf3a3SEmmanuel Vadot description: | 26*c9ccf3a3SEmmanuel Vadot Density in megabits of SDRAM chip. 27*c9ccf3a3SEmmanuel Vadot enum: 28*c9ccf3a3SEmmanuel Vadot - 4096 29*c9ccf3a3SEmmanuel Vadot - 8192 30*c9ccf3a3SEmmanuel Vadot - 16384 31*c9ccf3a3SEmmanuel Vadot - 32768 32*c9ccf3a3SEmmanuel Vadot 33*c9ccf3a3SEmmanuel Vadot io-width: 34*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 35*c9ccf3a3SEmmanuel Vadot description: | 36*c9ccf3a3SEmmanuel Vadot IO bus width in bits of SDRAM chip. 37*c9ccf3a3SEmmanuel Vadot enum: 38*c9ccf3a3SEmmanuel Vadot - 32 39*c9ccf3a3SEmmanuel Vadot - 16 40*c9ccf3a3SEmmanuel Vadot 41*c9ccf3a3SEmmanuel Vadot manufacturer-id: 42*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 43*c9ccf3a3SEmmanuel Vadot description: | 44*c9ccf3a3SEmmanuel Vadot Manufacturer ID value read from Mode Register 5. The property is 45*c9ccf3a3SEmmanuel Vadot deprecated, manufacturer should be derived from the compatible. 46*c9ccf3a3SEmmanuel Vadot deprecated: true 47*c9ccf3a3SEmmanuel Vadot 48*c9ccf3a3SEmmanuel Vadot revision-id: 49*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 50*c9ccf3a3SEmmanuel Vadot minItems: 2 51*c9ccf3a3SEmmanuel Vadot maxItems: 2 52*c9ccf3a3SEmmanuel Vadot items: 53*c9ccf3a3SEmmanuel Vadot maximum: 255 54*c9ccf3a3SEmmanuel Vadot description: | 55*c9ccf3a3SEmmanuel Vadot Revision value of SDRAM chip read from Mode Registers 6 and 7. 56*c9ccf3a3SEmmanuel Vadot 57*c9ccf3a3SEmmanuel Vadot '#size-cells': 58*c9ccf3a3SEmmanuel Vadot const: 0 59*c9ccf3a3SEmmanuel Vadot deprecated: true 60*c9ccf3a3SEmmanuel Vadot 61*c9ccf3a3SEmmanuel Vadot tCKE-min-tck: 62*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 63*c9ccf3a3SEmmanuel Vadot maximum: 15 64*c9ccf3a3SEmmanuel Vadot description: | 65*c9ccf3a3SEmmanuel Vadot CKE minimum pulse width (HIGH and LOW pulse width) in terms of number 66*c9ccf3a3SEmmanuel Vadot of clock cycles. 67*c9ccf3a3SEmmanuel Vadot 68*c9ccf3a3SEmmanuel Vadot tCKESR-min-tck: 69*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 70*c9ccf3a3SEmmanuel Vadot maximum: 15 71*c9ccf3a3SEmmanuel Vadot description: | 72*c9ccf3a3SEmmanuel Vadot CKE minimum pulse width during SELF REFRESH (low pulse width during 73*c9ccf3a3SEmmanuel Vadot SELF REFRESH) in terms of number of clock cycles. 74*c9ccf3a3SEmmanuel Vadot 75*c9ccf3a3SEmmanuel Vadot tDQSCK-min-tck: 76*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 77*c9ccf3a3SEmmanuel Vadot maximum: 15 78*c9ccf3a3SEmmanuel Vadot description: | 79*c9ccf3a3SEmmanuel Vadot DQS output data access time from CK_t/CK_c in terms of number of clock 80*c9ccf3a3SEmmanuel Vadot cycles. 81*c9ccf3a3SEmmanuel Vadot 82*c9ccf3a3SEmmanuel Vadot tFAW-min-tck: 83*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 84*c9ccf3a3SEmmanuel Vadot maximum: 63 85*c9ccf3a3SEmmanuel Vadot description: | 86*c9ccf3a3SEmmanuel Vadot Four-bank activate window in terms of number of clock cycles. 87*c9ccf3a3SEmmanuel Vadot 88*c9ccf3a3SEmmanuel Vadot tMRD-min-tck: 89*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 90*c9ccf3a3SEmmanuel Vadot maximum: 15 91*c9ccf3a3SEmmanuel Vadot description: | 92*c9ccf3a3SEmmanuel Vadot Mode register set command delay in terms of number of clock cycles. 93*c9ccf3a3SEmmanuel Vadot 94*c9ccf3a3SEmmanuel Vadot tR2R-C2C-min-tck: 95*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 96*c9ccf3a3SEmmanuel Vadot enum: [0, 1] 97*c9ccf3a3SEmmanuel Vadot description: | 98*c9ccf3a3SEmmanuel Vadot Additional READ-to-READ delay in chip-to-chip cases in terms of number 99*c9ccf3a3SEmmanuel Vadot of clock cycles. 100*c9ccf3a3SEmmanuel Vadot 101*c9ccf3a3SEmmanuel Vadot tRAS-min-tck: 102*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 103*c9ccf3a3SEmmanuel Vadot maximum: 63 104*c9ccf3a3SEmmanuel Vadot description: | 105*c9ccf3a3SEmmanuel Vadot Row active time in terms of number of clock cycles. 106*c9ccf3a3SEmmanuel Vadot 107*c9ccf3a3SEmmanuel Vadot tRC-min-tck: 108*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 109*c9ccf3a3SEmmanuel Vadot maximum: 63 110*c9ccf3a3SEmmanuel Vadot description: | 111*c9ccf3a3SEmmanuel Vadot ACTIVATE-to-ACTIVATE command period in terms of number of clock cycles. 112*c9ccf3a3SEmmanuel Vadot 113*c9ccf3a3SEmmanuel Vadot tRCD-min-tck: 114*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 115*c9ccf3a3SEmmanuel Vadot maximum: 15 116*c9ccf3a3SEmmanuel Vadot description: | 117*c9ccf3a3SEmmanuel Vadot RAS-to-CAS delay in terms of number of clock cycles. 118*c9ccf3a3SEmmanuel Vadot 119*c9ccf3a3SEmmanuel Vadot tRFC-min-tck: 120*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 121*c9ccf3a3SEmmanuel Vadot maximum: 255 122*c9ccf3a3SEmmanuel Vadot description: | 123*c9ccf3a3SEmmanuel Vadot Refresh Cycle time in terms of number of clock cycles. 124*c9ccf3a3SEmmanuel Vadot 125*c9ccf3a3SEmmanuel Vadot tRL-min-tck: 126*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 127*c9ccf3a3SEmmanuel Vadot maximum: 15 128*c9ccf3a3SEmmanuel Vadot description: | 129*c9ccf3a3SEmmanuel Vadot READ data latency in terms of number of clock cycles. 130*c9ccf3a3SEmmanuel Vadot 131*c9ccf3a3SEmmanuel Vadot tRPab-min-tck: 132*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 133*c9ccf3a3SEmmanuel Vadot maximum: 15 134*c9ccf3a3SEmmanuel Vadot description: | 135*c9ccf3a3SEmmanuel Vadot Row precharge time (all banks) in terms of number of clock cycles. 136*c9ccf3a3SEmmanuel Vadot 137*c9ccf3a3SEmmanuel Vadot tRPpb-min-tck: 138*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 139*c9ccf3a3SEmmanuel Vadot maximum: 15 140*c9ccf3a3SEmmanuel Vadot description: | 141*c9ccf3a3SEmmanuel Vadot Row precharge time (single banks) in terms of number of clock cycles. 142*c9ccf3a3SEmmanuel Vadot 143*c9ccf3a3SEmmanuel Vadot tRRD-min-tck: 144*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 145*c9ccf3a3SEmmanuel Vadot maximum: 15 146*c9ccf3a3SEmmanuel Vadot description: | 147*c9ccf3a3SEmmanuel Vadot Active bank A to active bank B in terms of number of clock cycles. 148*c9ccf3a3SEmmanuel Vadot 149*c9ccf3a3SEmmanuel Vadot tRTP-min-tck: 150*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 151*c9ccf3a3SEmmanuel Vadot maximum: 15 152*c9ccf3a3SEmmanuel Vadot description: | 153*c9ccf3a3SEmmanuel Vadot Internal READ to PRECHARGE command delay in terms of number of clock 154*c9ccf3a3SEmmanuel Vadot cycles. 155*c9ccf3a3SEmmanuel Vadot 156*c9ccf3a3SEmmanuel Vadot tW2W-C2C-min-tck: 157*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 158*c9ccf3a3SEmmanuel Vadot enum: [0, 1] 159*c9ccf3a3SEmmanuel Vadot description: | 160*c9ccf3a3SEmmanuel Vadot Additional WRITE-to-WRITE delay in chip-to-chip cases in terms of number 161*c9ccf3a3SEmmanuel Vadot of clock cycles. 162*c9ccf3a3SEmmanuel Vadot 163*c9ccf3a3SEmmanuel Vadot tWL-min-tck: 164*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 165*c9ccf3a3SEmmanuel Vadot maximum: 15 166*c9ccf3a3SEmmanuel Vadot description: | 167*c9ccf3a3SEmmanuel Vadot WRITE data latency in terms of number of clock cycles. 168*c9ccf3a3SEmmanuel Vadot 169*c9ccf3a3SEmmanuel Vadot tWR-min-tck: 170*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 171*c9ccf3a3SEmmanuel Vadot maximum: 15 172*c9ccf3a3SEmmanuel Vadot description: | 173*c9ccf3a3SEmmanuel Vadot WRITE recovery time in terms of number of clock cycles. 174*c9ccf3a3SEmmanuel Vadot 175*c9ccf3a3SEmmanuel Vadot tWTR-min-tck: 176*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 177*c9ccf3a3SEmmanuel Vadot maximum: 15 178*c9ccf3a3SEmmanuel Vadot description: | 179*c9ccf3a3SEmmanuel Vadot Internal WRITE-to-READ command delay in terms of number of clock cycles. 180*c9ccf3a3SEmmanuel Vadot 181*c9ccf3a3SEmmanuel Vadot tXP-min-tck: 182*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 183*c9ccf3a3SEmmanuel Vadot maximum: 255 184*c9ccf3a3SEmmanuel Vadot description: | 185*c9ccf3a3SEmmanuel Vadot Exit power-down to next valid command delay in terms of number of clock 186*c9ccf3a3SEmmanuel Vadot cycles. 187*c9ccf3a3SEmmanuel Vadot 188*c9ccf3a3SEmmanuel Vadot tXSR-min-tck: 189*c9ccf3a3SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 190*c9ccf3a3SEmmanuel Vadot maximum: 1023 191*c9ccf3a3SEmmanuel Vadot description: | 192*c9ccf3a3SEmmanuel Vadot SELF REFRESH exit to next valid command delay in terms of number of clock 193*c9ccf3a3SEmmanuel Vadot cycles. 194*c9ccf3a3SEmmanuel Vadot 195*c9ccf3a3SEmmanuel VadotpatternProperties: 196*c9ccf3a3SEmmanuel Vadot "^timings((-[0-9])+|(@[0-9a-f]+))?$": 197*c9ccf3a3SEmmanuel Vadot $ref: jedec,lpddr3-timings.yaml 198*c9ccf3a3SEmmanuel Vadot description: | 199*c9ccf3a3SEmmanuel Vadot The lpddr3 node may have one or more child nodes with timings. 200*c9ccf3a3SEmmanuel Vadot Each timing node provides AC timing parameters of the device for a given 201*c9ccf3a3SEmmanuel Vadot speed-bin. The user may provide the timings for as many speed-bins as is 202*c9ccf3a3SEmmanuel Vadot required. 203*c9ccf3a3SEmmanuel Vadot 204*c9ccf3a3SEmmanuel Vadotrequired: 205*c9ccf3a3SEmmanuel Vadot - compatible 206*c9ccf3a3SEmmanuel Vadot - density 207*c9ccf3a3SEmmanuel Vadot - io-width 208*c9ccf3a3SEmmanuel Vadot 209*c9ccf3a3SEmmanuel VadotadditionalProperties: false 210*c9ccf3a3SEmmanuel Vadot 211*c9ccf3a3SEmmanuel Vadotexamples: 212*c9ccf3a3SEmmanuel Vadot - | 213*c9ccf3a3SEmmanuel Vadot lpddr3 { 214*c9ccf3a3SEmmanuel Vadot compatible = "samsung,K3QF2F20DB", "jedec,lpddr3"; 215*c9ccf3a3SEmmanuel Vadot density = <16384>; 216*c9ccf3a3SEmmanuel Vadot io-width = <32>; 217*c9ccf3a3SEmmanuel Vadot 218*c9ccf3a3SEmmanuel Vadot tCKE-min-tck = <2>; 219*c9ccf3a3SEmmanuel Vadot tCKESR-min-tck = <2>; 220*c9ccf3a3SEmmanuel Vadot tDQSCK-min-tck = <5>; 221*c9ccf3a3SEmmanuel Vadot tFAW-min-tck = <5>; 222*c9ccf3a3SEmmanuel Vadot tMRD-min-tck = <5>; 223*c9ccf3a3SEmmanuel Vadot tR2R-C2C-min-tck = <0>; 224*c9ccf3a3SEmmanuel Vadot tRAS-min-tck = <5>; 225*c9ccf3a3SEmmanuel Vadot tRC-min-tck = <6>; 226*c9ccf3a3SEmmanuel Vadot tRCD-min-tck = <3>; 227*c9ccf3a3SEmmanuel Vadot tRFC-min-tck = <17>; 228*c9ccf3a3SEmmanuel Vadot tRL-min-tck = <14>; 229*c9ccf3a3SEmmanuel Vadot tRPab-min-tck = <2>; 230*c9ccf3a3SEmmanuel Vadot tRPpb-min-tck = <2>; 231*c9ccf3a3SEmmanuel Vadot tRRD-min-tck = <2>; 232*c9ccf3a3SEmmanuel Vadot tRTP-min-tck = <2>; 233*c9ccf3a3SEmmanuel Vadot tW2W-C2C-min-tck = <0>; 234*c9ccf3a3SEmmanuel Vadot tWL-min-tck = <8>; 235*c9ccf3a3SEmmanuel Vadot tWR-min-tck = <7>; 236*c9ccf3a3SEmmanuel Vadot tWTR-min-tck = <2>; 237*c9ccf3a3SEmmanuel Vadot tXP-min-tck = <2>; 238*c9ccf3a3SEmmanuel Vadot tXSR-min-tck = <12>; 239*c9ccf3a3SEmmanuel Vadot 240*c9ccf3a3SEmmanuel Vadot timings { 241*c9ccf3a3SEmmanuel Vadot compatible = "jedec,lpddr3-timings"; 242*c9ccf3a3SEmmanuel Vadot max-freq = <800000000>; 243*c9ccf3a3SEmmanuel Vadot min-freq = <100000000>; 244*c9ccf3a3SEmmanuel Vadot tCKE = <3750>; 245*c9ccf3a3SEmmanuel Vadot tCKESR = <3750>; 246*c9ccf3a3SEmmanuel Vadot tFAW = <25000>; 247*c9ccf3a3SEmmanuel Vadot tMRD = <7000>; 248*c9ccf3a3SEmmanuel Vadot tR2R-C2C = <0>; 249*c9ccf3a3SEmmanuel Vadot tRAS = <23000>; 250*c9ccf3a3SEmmanuel Vadot tRC = <33750>; 251*c9ccf3a3SEmmanuel Vadot tRCD = <10000>; 252*c9ccf3a3SEmmanuel Vadot tRFC = <65000>; 253*c9ccf3a3SEmmanuel Vadot tRPab = <12000>; 254*c9ccf3a3SEmmanuel Vadot tRPpb = <12000>; 255*c9ccf3a3SEmmanuel Vadot tRRD = <6000>; 256*c9ccf3a3SEmmanuel Vadot tRTP = <3750>; 257*c9ccf3a3SEmmanuel Vadot tW2W-C2C = <0>; 258*c9ccf3a3SEmmanuel Vadot tWR = <7500>; 259*c9ccf3a3SEmmanuel Vadot tWTR = <3750>; 260*c9ccf3a3SEmmanuel Vadot tXP = <3750>; 261*c9ccf3a3SEmmanuel Vadot tXSR = <70000>; 262*c9ccf3a3SEmmanuel Vadot }; 263*c9ccf3a3SEmmanuel Vadot }; 264