Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr2.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: LPDDR2 SDRAM compliant to JEDEC JESD209-2
0008 
0009 maintainers:
0010   - Krzysztof Kozlowski <krzk@kernel.org>
0011 
0012 properties:
0013   compatible:
0014     oneOf:
0015       - items:
0016           - enum:
0017               - elpida,ECB240ABACN
0018               - elpida,B8132B2PB-6D-F
0019           - enum:
0020               - jedec,lpddr2-s4
0021       - items:
0022           - enum:
0023               - jedec,lpddr2-s2
0024       - items:
0025           - enum:
0026               - jedec,lpddr2-nvm
0027 
0028   revision-id1:
0029     $ref: /schemas/types.yaml#/definitions/uint32
0030     maximum: 255
0031     description: |
0032       Revision 1 value of SDRAM chip. Obtained from device datasheet.
0033       Property is deprecated, use revision-id instead.
0034     deprecated: true
0035 
0036   revision-id2:
0037     $ref: /schemas/types.yaml#/definitions/uint32
0038     maximum: 255
0039     description: |
0040       Revision 2 value of SDRAM chip. Obtained from device datasheet.
0041       Property is deprecated, use revision-id instead.
0042     deprecated: true
0043 
0044   revision-id:
0045     $ref: /schemas/types.yaml#/definitions/uint32-array
0046     description: |
0047       Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
0048     minItems: 2
0049     maxItems: 2
0050     items:
0051       minimum: 0
0052       maximum: 255
0053 
0054   density:
0055     $ref: /schemas/types.yaml#/definitions/uint32
0056     description: |
0057       Density in megabits of SDRAM chip. Obtained from device datasheet.
0058     enum:
0059       - 64
0060       - 128
0061       - 256
0062       - 512
0063       - 1024
0064       - 2048
0065       - 4096
0066       - 8192
0067       - 16384
0068       - 32768
0069 
0070   io-width:
0071     $ref: /schemas/types.yaml#/definitions/uint32
0072     description: |
0073       IO bus width in bits of SDRAM chip. Obtained from device datasheet.
0074     enum:
0075       - 32
0076       - 16
0077       - 8
0078 
0079   tRRD-min-tck:
0080     $ref: /schemas/types.yaml#/definitions/uint32
0081     maximum: 16
0082     description: |
0083       Active bank a to active bank b in terms of number of clock cycles.
0084       Obtained from device datasheet.
0085 
0086   tWTR-min-tck:
0087     $ref: /schemas/types.yaml#/definitions/uint32
0088     maximum: 16
0089     description: |
0090       Internal WRITE-to-READ command delay in terms of number of clock cycles.
0091       Obtained from device datasheet.
0092 
0093   tXP-min-tck:
0094     $ref: /schemas/types.yaml#/definitions/uint32
0095     maximum: 16
0096     description: |
0097       Exit power-down to next valid command delay in terms of number of clock
0098       cycles. Obtained from device datasheet.
0099 
0100   tRTP-min-tck:
0101     $ref: /schemas/types.yaml#/definitions/uint32
0102     maximum: 16
0103     description: |
0104       Internal READ to PRECHARGE command delay in terms of number of clock
0105       cycles. Obtained from device datasheet.
0106 
0107   tCKE-min-tck:
0108     $ref: /schemas/types.yaml#/definitions/uint32
0109     maximum: 16
0110     description: |
0111       CKE minimum pulse width (HIGH and LOW pulse width) in terms of number
0112       of clock cycles. Obtained from device datasheet.
0113 
0114   tRPab-min-tck:
0115     $ref: /schemas/types.yaml#/definitions/uint32
0116     maximum: 16
0117     description: |
0118       Row precharge time (all banks) in terms of number of clock cycles.
0119       Obtained from device datasheet.
0120 
0121   tRCD-min-tck:
0122     $ref: /schemas/types.yaml#/definitions/uint32
0123     maximum: 16
0124     description: |
0125       RAS-to-CAS delay in terms of number of clock cycles. Obtained from
0126       device datasheet.
0127 
0128   tWR-min-tck:
0129     $ref: /schemas/types.yaml#/definitions/uint32
0130     maximum: 16
0131     description: |
0132       WRITE recovery time in terms of number of clock cycles. Obtained from
0133       device datasheet.
0134 
0135   tRASmin-min-tck:
0136     $ref: /schemas/types.yaml#/definitions/uint32
0137     maximum: 16
0138     description: |
0139       Row active time in terms of number of clock cycles. Obtained from device
0140       datasheet.
0141 
0142   tCKESR-min-tck:
0143     $ref: /schemas/types.yaml#/definitions/uint32
0144     maximum: 16
0145     description: |
0146       CKE minimum pulse width during SELF REFRESH (low pulse width during
0147       SELF REFRESH) in terms of number of clock cycles. Obtained from device
0148       datasheet.
0149 
0150   tFAW-min-tck:
0151     $ref: /schemas/types.yaml#/definitions/uint32
0152     maximum: 16
0153     description: |
0154       Four-bank activate window in terms of number of clock cycles. Obtained
0155       from device datasheet.
0156 
0157 patternProperties:
0158   "^lpddr2-timings":
0159     $ref: jedec,lpddr2-timings.yaml
0160     description: |
0161       The lpddr2 node may have one or more child nodes of type "lpddr2-timings".
0162       "lpddr2-timings" provides AC timing parameters of the device for
0163       a given speed-bin. The user may provide the timings for as many
0164       speed-bins as is required.
0165 
0166 required:
0167   - compatible
0168   - density
0169   - io-width
0170 
0171 additionalProperties: false
0172 
0173 examples:
0174   - |
0175     elpida_ECB240ABACN: lpddr2 {
0176         compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4";
0177         density = <2048>;
0178         io-width = <32>;
0179         revision-id = <1 0>;
0180 
0181         tRPab-min-tck = <3>;
0182         tRCD-min-tck = <3>;
0183         tWR-min-tck = <3>;
0184         tRASmin-min-tck = <3>;
0185         tRRD-min-tck = <2>;
0186         tWTR-min-tck = <2>;
0187         tXP-min-tck = <2>;
0188         tRTP-min-tck = <2>;
0189         tCKE-min-tck = <3>;
0190         tCKESR-min-tck = <3>;
0191         tFAW-min-tck = <8>;
0192 
0193         timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 {
0194             compatible = "jedec,lpddr2-timings";
0195             min-freq = <10000000>;
0196             max-freq = <400000000>;
0197             tRPab = <21000>;
0198             tRCD = <18000>;
0199             tWR = <15000>;
0200             tRAS-min = <42000>;
0201             tRRD = <10000>;
0202             tWTR = <7500>;
0203             tXP = <7500>;
0204             tRTP = <7500>;
0205             tCKESR = <15000>;
0206             tDQSCK-max = <5500>;
0207             tFAW = <50000>;
0208             tZQCS = <90000>;
0209             tZQCL = <360000>;
0210             tZQinit = <1000000>;
0211             tRAS-max-ns = <70000>;
0212         };
0213 
0214         timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 {
0215             compatible = "jedec,lpddr2-timings";
0216             min-freq = <10000000>;
0217             max-freq = <200000000>;
0218             tRPab = <21000>;
0219             tRCD = <18000>;
0220             tWR = <15000>;
0221             tRAS-min = <42000>;
0222             tRRD = <10000>;
0223             tWTR = <10000>;
0224             tXP = <7500>;
0225             tRTP = <7500>;
0226             tCKESR = <15000>;
0227             tDQSCK-max = <5500>;
0228             tFAW = <50000>;
0229             tZQCS = <90000>;
0230             tZQCL = <360000>;
0231             tZQinit = <1000000>;
0232             tRAS-max-ns = <70000>;
0233         };
0234     };