| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr3.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: LPDDR3 SDRAM compliant to JEDEC JESD209-3 |
| |
| maintainers: |
| - Krzysztof Kozlowski <krzk@kernel.org> |
| |
| allOf: |
| - $ref: jedec,lpddr-props.yaml# |
| |
| properties: |
| compatible: |
| oneOf: |
| - items: |
| - enum: |
| - samsung,K3QF2F20DB |
| - const: jedec,lpddr3 |
| - items: |
| - pattern: "^lpddr3-[0-9a-f]{2},[0-9a-f]{4}$" |
| - const: jedec,lpddr3 |
| |
| '#address-cells': |
| const: 1 |
| deprecated: true |
| |
| manufacturer-id: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| description: | |
| Manufacturer ID value read from Mode Register 5. The property is |
| deprecated, manufacturer should be derived from the compatible. |
| deprecated: true |
| |
| '#size-cells': |
| const: 0 |
| deprecated: true |
| |
| tCKE-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| CKE minimum pulse width (HIGH and LOW pulse width) in terms of number |
| of clock cycles. |
| |
| tCKESR-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| CKE minimum pulse width during SELF REFRESH (low pulse width during |
| SELF REFRESH) in terms of number of clock cycles. |
| |
| tDQSCK-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| DQS output data access time from CK_t/CK_c in terms of number of clock |
| cycles. |
| |
| tFAW-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 63 |
| description: | |
| Four-bank activate window in terms of number of clock cycles. |
| |
| tMRD-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| Mode register set command delay in terms of number of clock cycles. |
| |
| tR2R-C2C-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1] |
| description: | |
| Additional READ-to-READ delay in chip-to-chip cases in terms of number |
| of clock cycles. |
| |
| tRAS-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 63 |
| description: | |
| Row active time in terms of number of clock cycles. |
| |
| tRC-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 63 |
| description: | |
| ACTIVATE-to-ACTIVATE command period in terms of number of clock cycles. |
| |
| tRCD-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| RAS-to-CAS delay in terms of number of clock cycles. |
| |
| tRFC-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 255 |
| description: | |
| Refresh Cycle time in terms of number of clock cycles. |
| |
| tRL-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| READ data latency in terms of number of clock cycles. |
| |
| tRPab-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| Row precharge time (all banks) in terms of number of clock cycles. |
| |
| tRPpb-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| Row precharge time (single banks) in terms of number of clock cycles. |
| |
| tRRD-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| Active bank A to active bank B in terms of number of clock cycles. |
| |
| tRTP-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| Internal READ to PRECHARGE command delay in terms of number of clock |
| cycles. |
| |
| tW2W-C2C-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| enum: [0, 1] |
| description: | |
| Additional WRITE-to-WRITE delay in chip-to-chip cases in terms of number |
| of clock cycles. |
| |
| tWL-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| WRITE data latency in terms of number of clock cycles. |
| |
| tWR-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| WRITE recovery time in terms of number of clock cycles. |
| |
| tWTR-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 15 |
| description: | |
| Internal WRITE-to-READ command delay in terms of number of clock cycles. |
| |
| tXP-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 255 |
| description: | |
| Exit power-down to next valid command delay in terms of number of clock |
| cycles. |
| |
| tXSR-min-tck: |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 1023 |
| description: | |
| SELF REFRESH exit to next valid command delay in terms of number of clock |
| cycles. |
| |
| patternProperties: |
| "^timings((-[0-9])+|(@[0-9a-f]+))?$": |
| $ref: jedec,lpddr3-timings.yaml |
| description: | |
| The lpddr3 node may have one or more child nodes with timings. |
| Each timing node provides AC timing parameters of the device for a given |
| speed-bin. The user may provide the timings for as many speed-bins as is |
| required. |
| |
| required: |
| - compatible |
| - density |
| - io-width |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| lpddr3 { |
| compatible = "samsung,K3QF2F20DB", "jedec,lpddr3"; |
| density = <16384>; |
| io-width = <32>; |
| |
| tCKE-min-tck = <2>; |
| tCKESR-min-tck = <2>; |
| tDQSCK-min-tck = <5>; |
| tFAW-min-tck = <5>; |
| tMRD-min-tck = <5>; |
| tR2R-C2C-min-tck = <0>; |
| tRAS-min-tck = <5>; |
| tRC-min-tck = <6>; |
| tRCD-min-tck = <3>; |
| tRFC-min-tck = <17>; |
| tRL-min-tck = <14>; |
| tRPab-min-tck = <2>; |
| tRPpb-min-tck = <2>; |
| tRRD-min-tck = <2>; |
| tRTP-min-tck = <2>; |
| tW2W-C2C-min-tck = <0>; |
| tWL-min-tck = <8>; |
| tWR-min-tck = <7>; |
| tWTR-min-tck = <2>; |
| tXP-min-tck = <2>; |
| tXSR-min-tck = <12>; |
| |
| timings { |
| compatible = "jedec,lpddr3-timings"; |
| max-freq = <800000000>; |
| min-freq = <100000000>; |
| tCKE = <3750>; |
| tCKESR = <3750>; |
| tFAW = <25000>; |
| tMRD = <7000>; |
| tR2R-C2C = <0>; |
| tRAS = <23000>; |
| tRC = <33750>; |
| tRCD = <10000>; |
| tRFC = <65000>; |
| tRPab = <12000>; |
| tRPpb = <12000>; |
| tRRD = <6000>; |
| tRTP = <3750>; |
| tW2W-C2C = <0>; |
| tWR = <7500>; |
| tWTR = <3750>; |
| tXP = <3750>; |
| tXSR = <70000>; |
| }; |
| }; |