* [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings
@ 2025-09-30 8:46 Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props Clément Le Goffic
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
Introduce DDR4 bindings, which is the first DDR type to be added.
As the DDR and LPDDR use the same properties, factorise them in a
sdram-props bindings file and rename lpddr-channel into sdram-channel.
Changes in v8:
- Globally fix typo/grammar in SDRAM props bindings:
- DDR4 bindings compatible description:
- s/lpddrX,YY,ZZZZ/lpddrX-YY,ZZZZ/
- s/in lower case/lowercase/
- s/statis/static/
- s/~/-/
- Add an "s" where a plural form is used (e.g. registers) in the DDR4
binding revision-id description
- Fix the number of chars that an SPD can contain in the part number
field.
- Link to v7: https://lore.kernel.org/r/20250922-b4-ddr-bindings-v7-0-b3dd20e54db6@gmail.com
The v7 is a subset of the v6 and other prior versions, split to simplify
the review and merging process.
Changes in v7:
- None
- Link to v6: https://lore.kernel.org/all/20250909-b4-ddrperfm-upstream-v6-5-ce082cc801b5@gmail.com/
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
Clément Le Goffic (7):
dt-bindings: memory: factorise LPDDR props into SDRAM props
dt-bindings: memory: introduce DDR4
dt-bindings: memory: factorise LPDDR channel binding into SDRAM channel
dt-binding: memory: add DDR4 channel compatible
dt-bindings: memory: SDRAM channel: standardise node name
arm64: dts: st: add LPDDR channel to stm32mp257f-dk board
arm64: dts: st: add DDR channel to stm32mp257f-ev1 board
.../memory-controllers/ddr/jedec,ddr4.yaml | 34 ++++++++
.../memory-controllers/ddr/jedec,lpddr-props.yaml | 74 -----------------
.../memory-controllers/ddr/jedec,lpddr2.yaml | 2 +-
.../memory-controllers/ddr/jedec,lpddr3.yaml | 2 +-
.../memory-controllers/ddr/jedec,lpddr4.yaml | 2 +-
.../memory-controllers/ddr/jedec,lpddr5.yaml | 2 +-
...lpddr-channel.yaml => jedec,sdram-channel.yaml} | 40 ++++++---
.../memory-controllers/ddr/jedec,sdram-props.yaml | 94 ++++++++++++++++++++++
arch/arm64/boot/dts/st/stm32mp257f-dk.dts | 7 ++
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 7 ++
10 files changed, 173 insertions(+), 91 deletions(-)
---
base-commit: 30d4efb2f5a515a60fe6b0ca85362cbebea21e2f
change-id: 20250922-b4-ddr-bindings-7161e3e0af56
Best regards,
--
Clément Le Goffic <legoffic.clement@gmail.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
2025-10-23 13:12 ` Krzysztof Kozlowski
2025-09-30 8:46 ` [PATCH v8 2/7] dt-bindings: memory: introduce DDR4 Clément Le Goffic
` (5 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
LPDDR and DDR bindings are SDRAM types and are likely to share the same
properties (at least for density, io-width and reg).
To avoid bindings duplication, factorise the properties.
The compatible description has been updated because the MR (Mode
registers) used to get manufacturer ID and revision ID are not present
in case of DDR.
Those information should be in a SPD (Serial Presence Detect) EEPROM in
case of DIMM module or are known in case of soldered memory chips as
they are in the datasheet of the memory chips.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
.../memory-controllers/ddr/jedec,lpddr-props.yaml | 74 -----------------
.../memory-controllers/ddr/jedec,lpddr2.yaml | 2 +-
.../memory-controllers/ddr/jedec,lpddr3.yaml | 2 +-
.../memory-controllers/ddr/jedec,lpddr4.yaml | 2 +-
.../memory-controllers/ddr/jedec,lpddr5.yaml | 2 +-
.../memory-controllers/ddr/jedec,sdram-props.yaml | 94 ++++++++++++++++++++++
6 files changed, 98 insertions(+), 78 deletions(-)
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-props.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-props.yaml
deleted file mode 100644
index 30267ce70124..000000000000
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-props.yaml
+++ /dev/null
@@ -1,74 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr-props.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Common properties for LPDDR types
-
-description:
- Different LPDDR types generally use the same properties and only differ in the
- range of legal values for each. This file defines the common parts that can be
- reused for each type. Nodes using this schema should generally be nested under
- an LPDDR channel node.
-
-maintainers:
- - Krzysztof Kozlowski <krzk@kernel.org>
-
-properties:
- compatible:
- description:
- Compatible strings can be either explicit vendor names and part numbers
- (e.g. elpida,ECB240ABACN), or generated strings of the form
- lpddrX-YY,ZZZZ where X is the LPDDR version, YY is the manufacturer ID
- (from MR5) and ZZZZ is the revision ID (from MR6 and MR7). Both IDs are
- formatted in lower case hexadecimal representation with leading zeroes.
- The latter form can be useful when LPDDR nodes are created at runtime by
- boot firmware that doesn't have access to static part number information.
-
- reg:
- description:
- The rank number of this LPDDR rank when used as a subnode to an LPDDR
- channel.
- minimum: 0
- maximum: 3
-
- revision-id:
- $ref: /schemas/types.yaml#/definitions/uint32-array
- description:
- Revision IDs read from Mode Register 6 and 7. One byte per uint32 cell (i.e. <MR6 MR7>).
- maxItems: 2
- items:
- minimum: 0
- maximum: 255
-
- density:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- Density in megabits of SDRAM chip. Decoded from Mode Register 8.
- enum:
- - 64
- - 128
- - 256
- - 512
- - 1024
- - 2048
- - 3072
- - 4096
- - 6144
- - 8192
- - 12288
- - 16384
- - 24576
- - 32768
-
- io-width:
- $ref: /schemas/types.yaml#/definitions/uint32
- description:
- IO bus width in bits of SDRAM chip. Decoded from Mode Register 8.
- enum:
- - 8
- - 16
- - 32
-
-additionalProperties: true
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
index a237bc259273..704bbc562528 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr2.yaml
@@ -10,7 +10,7 @@ maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- - $ref: jedec,lpddr-props.yaml#
+ - $ref: jedec,sdram-props.yaml#
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr3.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr3.yaml
index e328a1195ba6..0d28df3d2bfa 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr3.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr3.yaml
@@ -10,7 +10,7 @@ maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- - $ref: jedec,lpddr-props.yaml#
+ - $ref: jedec,sdram-props.yaml#
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr4.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr4.yaml
index a078892fecee..65aa07861453 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr4.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr4.yaml
@@ -10,7 +10,7 @@ maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- - $ref: jedec,lpddr-props.yaml#
+ - $ref: jedec,sdram-props.yaml#
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr5.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr5.yaml
index e441dac5f154..cf5d5a8e94b3 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr5.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr5.yaml
@@ -10,7 +10,7 @@ maintainers:
- Krzysztof Kozlowski <krzk@kernel.org>
allOf:
- - $ref: jedec,lpddr-props.yaml#
+ - $ref: jedec,sdram-props.yaml#
properties:
compatible:
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-props.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-props.yaml
new file mode 100644
index 000000000000..eb6f429e9eb2
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-props.yaml
@@ -0,0 +1,94 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,sdram-props.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Common properties for SDRAM types
+
+description:
+ Different SDRAM types generally use the same properties and only differ in the
+ range of legal values for each. This file defines the common parts that can be
+ reused for each type. Nodes using this schema should generally be nested under
+ a SDRAM channel node.
+
+maintainers:
+ - Krzysztof Kozlowski <krzk@kernel.org>
+
+properties:
+ compatible:
+ description: |
+ Compatible strings can be either explicit vendor names and part numbers
+ (e.g. elpida,ECB240ABACN), or generated strings of the form
+ lpddrX-YY,ZZZZ or ddrX-YYYY,AAAA...,ZZ where X, Y, and Z are lowercase
+ hexadecimal with leading zeroes, and A is lowercase ASCII.
+ For LPDDR and DDR SDRAM, X is the SDRAM version (2, 3, 4, etc.).
+ For LPDDR SDRAM:
+ - YY is the manufacturer ID (from MR5), 1 byte
+ - ZZZZ is the revision ID (from MR6 and MR7), 2 bytes
+ For DDR4 SDRAM with SPD, according to JEDEC SPD4.1.2.L-6:
+ - YYYY is the manufacturer ID, 2 bytes, from bytes 320 and 321
+ - AAAA... is the part number, 20 bytes (20 chars) from bytes 329 to 348
+ without trailing spaces
+ - ZZ is the revision ID, 1 byte, from byte 349
+ The former form is useful when the SDRAM vendor and part number are
+ known, for example, when memory is soldered on the board. The latter
+ form is useful when SDRAM nodes are created at runtime by boot firmware
+ that doesn't have access to static part number information.
+
+ reg:
+ description:
+ The rank number of this memory rank when used as a subnode to an memory
+ channel.
+ minimum: 0
+ maximum: 3
+
+ revision-id:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ description: |
+ SDRAM revision ID:
+ - LPDDR SDRAM, decoded from Mode Registers 6 and 7, always 2 bytes.
+ - DDR4 SDRAM, decoded from the SPD from byte 349 according to
+ JEDEC SPD4.1.2.L-6, always 1 byte.
+ One byte per uint32 cell (e.g., <MR6 MR7>).
+ maxItems: 2
+ items:
+ minimum: 0
+ maximum: 255
+
+ density:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Density of the SDRAM chip in megabits:
+ - LPDDR SDRAM, decoded from Mode Register 8.
+ - DDR4 SDRAM, decoded from the SPD from bits 3-0 of byte 4 according to
+ JEDEC SPD4.1.2.L-6.
+ enum:
+ - 64
+ - 128
+ - 256
+ - 512
+ - 1024
+ - 2048
+ - 3072
+ - 4096
+ - 6144
+ - 8192
+ - 12288
+ - 16384
+ - 24576
+ - 32768
+
+ io-width:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ I/O bus width in bits of the SDRAM chip:
+ - LPDDR SDRAM, decoded from Mode Register 8.
+ - DDR4 SDRAM, decoded from the SPD from bits 2-0 of byte 12 according to
+ JEDEC SPD4.1.2.L-6.
+ enum:
+ - 8
+ - 16
+ - 32
+
+additionalProperties: true
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 2/7] dt-bindings: memory: introduce DDR4
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
2025-10-23 13:21 ` Krzysztof Kozlowski
2025-09-30 8:46 ` [PATCH v8 3/7] dt-bindings: memory: factorise LPDDR channel binding into SDRAM channel Clément Le Goffic
` (4 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
Introduce JEDEC compliant DDR bindings, that use new memory-props binding.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
.../memory-controllers/ddr/jedec,ddr4.yaml | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml
new file mode 100644
index 000000000000..a2eb6f63c0ce
--- /dev/null
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml
@@ -0,0 +1,34 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,ddr4.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: DDR4 SDRAM compliant to JEDEC JESD79-4D
+
+maintainers:
+ - Krzysztof Kozlowski <krzk@kernel.org>
+
+allOf:
+ - $ref: jedec,sdram-props.yaml#
+
+properties:
+ compatible:
+ items:
+ - pattern: "^ddr4-[0-9a-f]{4},[a-z]{1,20},[0-9a-f]{2}$"
+ - const: jedec,ddr4
+
+required:
+ - compatible
+ - density
+ - io-width
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ ddr {
+ compatible = "ddr4-00ff,azaz,ff", "jedec,ddr4";
+ density = <8192>;
+ io-width = <8>;
+ };
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 3/7] dt-bindings: memory: factorise LPDDR channel binding into SDRAM channel
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 2/7] dt-bindings: memory: introduce DDR4 Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 4/7] dt-binding: memory: add DDR4 channel compatible Clément Le Goffic
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
LPDDR, DDR and so SDRAM channels exist and share the same properties, they
have a compatible, ranks, and an io-width.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
...lpddr-channel.yaml => jedec,sdram-channel.yaml} | 23 +++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
similarity index 83%
rename from Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml
rename to Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
index 34b5bd153f63..9892da520fe4 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,lpddr-channel.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
@@ -1,16 +1,17 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
-$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,lpddr-channel.yaml#
+$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,sdram-channel.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: LPDDR channel with chip/rank topology description
+title: SDRAM channel with chip/rank topology description
description:
- An LPDDR channel is a completely independent set of LPDDR pins (DQ, CA, CS,
- CK, etc.) that connect one or more LPDDR chips to a host system. The main
- purpose of this node is to overall LPDDR topology of the system, including the
- amount of individual LPDDR chips and the ranks per chip.
+ A memory channel of SDRAM memory like DDR SDRAM or LPDDR SDRAM is a completely
+ independent set of pins (DQ, CA, CS, CK, etc.) that connect one or more memory
+ chips to a host system. The main purpose of this node is to overall memory
+ topology of the system, including the amount of individual memory chips and
+ the ranks per chip.
maintainers:
- Julius Werner <jwerner@chromium.org>
@@ -26,14 +27,14 @@ properties:
io-width:
description:
The number of DQ pins in the channel. If this number is different
- from (a multiple of) the io-width of the LPDDR chip, that means that
+ from (a multiple of) the io-width of the SDRAM chip, that means that
multiple instances of that type of chip are wired in parallel on this
channel (with the channel's DQ pins split up between the different
chips, and the CA, CS, etc. pins of the different chips all shorted
together). This means that the total physical memory controlled by a
channel is equal to the sum of the densities of each rank on the
- connected LPDDR chip, times the io-width of the channel divided by
- the io-width of the LPDDR chip.
+ connected SDRAM chip, times the io-width of the channel divided by
+ the io-width of the SDRAM chip.
enum:
- 8
- 16
@@ -51,8 +52,8 @@ patternProperties:
"^rank@[0-9]+$":
type: object
description:
- Each physical LPDDR chip may have one or more ranks. Ranks are
- internal but fully independent sub-units of the chip. Each LPDDR bus
+ Each physical SDRAM chip may have one or more ranks. Ranks are
+ internal but fully independent sub-units of the chip. Each SDRAM bus
transaction on the channel targets exactly one rank, based on the
state of the CS pins. Different ranks may have different densities and
timing requirements.
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 4/7] dt-binding: memory: add DDR4 channel compatible
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
` (2 preceding siblings ...)
2025-09-30 8:46 ` [PATCH v8 3/7] dt-bindings: memory: factorise LPDDR channel binding into SDRAM channel Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 5/7] dt-bindings: memory: SDRAM channel: standardise node name Clément Le Goffic
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
Add in the memory channel binding the DDR4 compatible to support DDR4
memory channel.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
.../bindings/memory-controllers/ddr/jedec,sdram-channel.yaml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
index 9892da520fe4..866af40b654d 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
@@ -19,6 +19,7 @@ maintainers:
properties:
compatible:
enum:
+ - jedec,ddr4-channel
- jedec,lpddr2-channel
- jedec,lpddr3-channel
- jedec,lpddr4-channel
@@ -61,6 +62,15 @@ patternProperties:
- reg
allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: jedec,ddr4-channel
+ then:
+ patternProperties:
+ "^rank@[0-9]+$":
+ $ref: /schemas/memory-controllers/ddr/jedec,ddr4.yaml#
- if:
properties:
compatible:
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 5/7] dt-bindings: memory: SDRAM channel: standardise node name
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
` (3 preceding siblings ...)
2025-09-30 8:46 ` [PATCH v8 4/7] dt-binding: memory: add DDR4 channel compatible Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 6/7] arm64: dts: st: add LPDDR channel to stm32mp257f-dk board Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 7/7] arm64: dts: st: add DDR channel to stm32mp257f-ev1 board Clément Le Goffic
6 siblings, 0 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
Add a pattern for sdram channel node name.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
.../bindings/memory-controllers/ddr/jedec,sdram-channel.yaml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
index 866af40b654d..5cdd8ef45100 100644
--- a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,sdram-channel.yaml
@@ -17,6 +17,9 @@ maintainers:
- Julius Werner <jwerner@chromium.org>
properties:
+ $nodename:
+ pattern: "sdram-channel-[0-9]+$"
+
compatible:
enum:
- jedec,ddr4-channel
@@ -118,7 +121,7 @@ additionalProperties: false
examples:
- |
- lpddr-channel0 {
+ sdram-channel-0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "jedec,lpddr3-channel";
@@ -133,7 +136,7 @@ examples:
};
};
- lpddr-channel1 {
+ sdram-channel-1 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "jedec,lpddr4-channel";
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 6/7] arm64: dts: st: add LPDDR channel to stm32mp257f-dk board
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
` (4 preceding siblings ...)
2025-09-30 8:46 ` [PATCH v8 5/7] dt-bindings: memory: SDRAM channel: standardise node name Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 7/7] arm64: dts: st: add DDR channel to stm32mp257f-ev1 board Clément Le Goffic
6 siblings, 0 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
Add 32bits LPDDR4 channel to the stm32mp257f-dk board.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
arch/arm64/boot/dts/st/stm32mp257f-dk.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/st/stm32mp257f-dk.dts b/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
index a278a1e3ce03..45ffa358c800 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-dk.dts
@@ -54,6 +54,13 @@ led-blue {
};
};
+ lpddr_channel: sdram-channel-0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "jedec,lpddr4-channel";
+ io-width = <32>;
+ };
+
memory@80000000 {
device_type = "memory";
reg = <0x0 0x80000000 0x1 0x0>;
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v8 7/7] arm64: dts: st: add DDR channel to stm32mp257f-ev1 board
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
` (5 preceding siblings ...)
2025-09-30 8:46 ` [PATCH v8 6/7] arm64: dts: st: add LPDDR channel to stm32mp257f-dk board Clément Le Goffic
@ 2025-09-30 8:46 ` Clément Le Goffic
6 siblings, 0 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-09-30 8:46 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic, Clément Le Goffic
From: Clément Le Goffic <clement.legoffic@foss.st.com>
Add 32bits DDR4 channel to the stm32mp257f-dk board.
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
---
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
index 836b1958ce65..c4223f06396a 100644
--- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
+++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
@@ -41,6 +41,13 @@ pad_clk: pad-clk {
};
};
+ ddr_channel: sdram-channel-0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "jedec,ddr4-channel";
+ io-width = <32>;
+ };
+
imx335_2v9: regulator-2v9 {
compatible = "regulator-fixed";
regulator-name = "imx335-avdd";
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props
2025-09-30 8:46 ` [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props Clément Le Goffic
@ 2025-10-23 13:12 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-23 13:12 UTC (permalink / raw)
To: Clément Le Goffic, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic
On 30/09/2025 10:46, Clément Le Goffic wrote:
> From: Clément Le Goffic <clement.legoffic@foss.st.com>
>
> LPDDR and DDR bindings are SDRAM types and are likely to share the same
> properties (at least for density, io-width and reg).
> To avoid bindings duplication, factorise the properties.
>
> The compatible description has been updated because the MR (Mode
> registers) used to get manufacturer ID and revision ID are not present
> in case of DDR.
> Those information should be in a SPD (Serial Presence Detect) EEPROM in
> case of DIMM module or are known in case of soldered memory chips as
> they are in the datasheet of the memory chips.
>
> Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
> Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
Wearing DT hat:
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v8 2/7] dt-bindings: memory: introduce DDR4
2025-09-30 8:46 ` [PATCH v8 2/7] dt-bindings: memory: introduce DDR4 Clément Le Goffic
@ 2025-10-23 13:21 ` Krzysztof Kozlowski
2025-10-24 9:21 ` Clément Le Goffic
0 siblings, 1 reply; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-23 13:21 UTC (permalink / raw)
To: Clément Le Goffic, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic
On 30/09/2025 10:46, Clément Le Goffic wrote:
> From: Clément Le Goffic <clement.legoffic@foss.st.com>
>
> Introduce JEDEC compliant DDR bindings, that use new memory-props binding.
If there is going to be resend, then please repeat here applicable part
of compatible format, e.g. why it's like that.
>
> Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
> Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
> ---
> .../memory-controllers/ddr/jedec,ddr4.yaml | 34 ++++++++++++++++++++++
> 1 file changed, 34 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml
> new file mode 100644
> index 000000000000..a2eb6f63c0ce
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml
> @@ -0,0 +1,34 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,ddr4.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: DDR4 SDRAM compliant to JEDEC JESD79-4D
> +
> +maintainers:
> + - Krzysztof Kozlowski <krzk@kernel.org>
> +
> +allOf:
> + - $ref: jedec,sdram-props.yaml#
> +
> +properties:
> + compatible:
> + items:
> + - pattern: "^ddr4-[0-9a-f]{4},[a-z]{1,20},[0-9a-f]{2}$"
Why double ','? I would imagine last ',' to be '-':
ddrX-YYYY,AAAA...-ZZ
Sorry if we discuss that already, but then please remind me and this
would need addressing in commit msg.
> + - const: jedec,ddr4
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v8 2/7] dt-bindings: memory: introduce DDR4
2025-10-23 13:21 ` Krzysztof Kozlowski
@ 2025-10-24 9:21 ` Clément Le Goffic
0 siblings, 0 replies; 11+ messages in thread
From: Clément Le Goffic @ 2025-10-24 9:21 UTC (permalink / raw)
To: Krzysztof Kozlowski, Rob Herring, Conor Dooley, Julius Werner,
Krzysztof Kozlowski, Maxime Coquelin, Alexandre Torgue
Cc: linux-kernel, devicetree, linux-stm32, linux-arm-kernel,
Clément Le Goffic
On 10/23/25 15:21, Krzysztof Kozlowski wrote:
> On 30/09/2025 10:46, Clément Le Goffic wrote:
>> From: Clément Le Goffic <clement.legoffic@foss.st.com>
>>
>> Introduce JEDEC compliant DDR bindings, that use new memory-props binding.
>
>
> If there is going to be resend, then please repeat here applicable part
> of compatible format, e.g. why it's like that.
Hi Krzysztof, ok
>
>>
>> Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com>
>> Signed-off-by: Clément Le Goffic <legoffic.clement@gmail.com>
>> ---
>> .../memory-controllers/ddr/jedec,ddr4.yaml | 34 ++++++++++++++++++++++
>> 1 file changed, 34 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml
>> new file mode 100644
>> index 000000000000..a2eb6f63c0ce
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/memory-controllers/ddr/jedec,ddr4.yaml
>> @@ -0,0 +1,34 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/memory-controllers/ddr/jedec,ddr4.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: DDR4 SDRAM compliant to JEDEC JESD79-4D
>> +
>> +maintainers:
>> + - Krzysztof Kozlowski <krzk@kernel.org>
>> +
>> +allOf:
>> + - $ref: jedec,sdram-props.yaml#
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - pattern: "^ddr4-[0-9a-f]{4},[a-z]{1,20},[0-9a-f]{2}$"
>
> Why double ','? I would imagine last ',' to be '-':
> ddrX-YYYY,AAAA...-ZZ
>
> Sorry if we discuss that already, but then please remind me and this
> would need addressing in commit msg.
I do not see anything against that.
I'll wait Julius's review, if any, and I will send the next version with
this changes.
>
>> + - const: jedec,ddr4
>
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-10-24 9:21 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30 8:46 [PATCH v8 0/7] Add DDR4 memory-controller bindings and factorise LPDDR and DDR bindings Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 1/7] dt-bindings: memory: factorise LPDDR props into SDRAM props Clément Le Goffic
2025-10-23 13:12 ` Krzysztof Kozlowski
2025-09-30 8:46 ` [PATCH v8 2/7] dt-bindings: memory: introduce DDR4 Clément Le Goffic
2025-10-23 13:21 ` Krzysztof Kozlowski
2025-10-24 9:21 ` Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 3/7] dt-bindings: memory: factorise LPDDR channel binding into SDRAM channel Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 4/7] dt-binding: memory: add DDR4 channel compatible Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 5/7] dt-bindings: memory: SDRAM channel: standardise node name Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 6/7] arm64: dts: st: add LPDDR channel to stm32mp257f-dk board Clément Le Goffic
2025-09-30 8:46 ` [PATCH v8 7/7] arm64: dts: st: add DDR channel to stm32mp257f-ev1 board Clément Le Goffic
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).