# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr2.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: LPDDR2 SDRAM compliant to JEDEC JESD209-2 maintainers: - Krzysztof Kozlowski <krzk@kernel.org> allOf: - $ref: jedec,lpddr-props.yaml# properties: compatible: oneOf: - items: - enum: - elpida,ECB240ABACN - elpida,B8132B2PB-6D-F - enum: - jedec,lpddr2-nvm - jedec,lpddr2-s2 - jedec,lpddr2-s4 - items: - pattern: "^lpddr2-[0-9a-f]{2},[0-9a-f]{4}$" - enum: - jedec,lpddr2-nvm - jedec,lpddr2-s2 - jedec,lpddr2-s4 revision-id1: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 255 description: | Revision 1 value of SDRAM chip. Obtained from device datasheet. Property is deprecated, use revision-id instead. deprecated: true revision-id2: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 255 description: | Revision 2 value of SDRAM chip. Obtained from device datasheet. Property is deprecated, use revision-id instead. deprecated: true tRRD-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Active bank a to active bank b in terms of number of clock cycles. Obtained from device datasheet. tWTR-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Internal WRITE-to-READ command delay in terms of number of clock cycles. Obtained from device datasheet. tXP-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Exit power-down to next valid command delay in terms of number of clock cycles. Obtained from device datasheet. tRTP-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Internal READ to PRECHARGE command delay in terms of number of clock cycles. Obtained from device datasheet. tCKE-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | CKE minimum pulse width (HIGH and LOW pulse width) in terms of number of clock cycles. Obtained from device datasheet. tRPab-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Row precharge time (all banks) in terms of number of clock cycles. Obtained from device datasheet. tRCD-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | RAS-to-CAS delay in terms of number of clock cycles. Obtained from device datasheet. tWR-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | WRITE recovery time in terms of number of clock cycles. Obtained from device datasheet. tRASmin-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Row active time in terms of number of clock cycles. Obtained from device datasheet. tCKESR-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | CKE minimum pulse width during SELF REFRESH (low pulse width during SELF REFRESH) in terms of number of clock cycles. Obtained from device datasheet. tFAW-min-tck: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 16 description: | Four-bank activate window in terms of number of clock cycles. Obtained from device datasheet. patternProperties: "^lpddr2-timings": $ref: jedec,lpddr2-timings.yaml description: | The lpddr2 node may have one or more child nodes of type "lpddr2-timings". "lpddr2-timings" 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: - | elpida_ECB240ABACN: lpddr2 { compatible = "elpida,ECB240ABACN", "jedec,lpddr2-s4"; density = <2048>; io-width = <32>; revision-id = <1 0>; tRPab-min-tck = <3>; tRCD-min-tck = <3>; tWR-min-tck = <3>; tRASmin-min-tck = <3>; tRRD-min-tck = <2>; tWTR-min-tck = <2>; tXP-min-tck = <2>; tRTP-min-tck = <2>; tCKE-min-tck = <3>; tCKESR-min-tck = <3>; tFAW-min-tck = <8>; timings_elpida_ECB240ABACN_400mhz: lpddr2-timings0 { compatible = "jedec,lpddr2-timings"; min-freq = <10000000>; max-freq = <400000000>; tRPab = <21000>; tRCD = <18000>; tWR = <15000>; tRAS-min = <42000>; tRRD = <10000>; tWTR = <7500>; tXP = <7500>; tRTP = <7500>; tCKESR = <15000>; tDQSCK-max = <5500>; tFAW = <50000>; tZQCS = <90000>; tZQCL = <360000>; tZQinit = <1000000>; tRAS-max-ns = <70000>; }; timings_elpida_ECB240ABACN_200mhz: lpddr2-timings1 { compatible = "jedec,lpddr2-timings"; min-freq = <10000000>; max-freq = <200000000>; tRPab = <21000>; tRCD = <18000>; tWR = <15000>; tRAS-min = <42000>; tRRD = <10000>; tWTR = <10000>; tXP = <7500>; tRTP = <7500>; tCKESR = <15000>; tDQSCK-max = <5500>; tFAW = <50000>; tZQCS = <90000>; tZQCL = <360000>; tZQinit = <1000000>; tRAS-max-ns = <70000>; }; };