* [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible
2025-06-09 21:23 Florian Fainelli
@ 2025-06-09 21:23 ` Florian Fainelli
0 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2025-06-09 21:23 UTC (permalink / raw)
To: linux-kernel
Cc: Florian Fainelli, Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Broadcom internal kernel review list,
open list:MEMORY CONTROLLER DRIVERS,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE
All of the DDR controllers beyond revision b.2.1 have had a consistent
layout, therefore define a "brcm,brcmstb-memc-ddr-rev-b.2.1" fallback
compatible string to match them all rather than having to continuously
add to the list.
Link: https://lore.kernel.org/all/20241217194439.929040-2-florian.fainelli@broadcom.com/
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
.../brcm,brcmstb-memc-ddr.yaml | 54 ++++++++++++-------
1 file changed, 34 insertions(+), 20 deletions(-)
diff --git a/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml b/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml
index 4b072c879b02..b935894bd4fc 100644
--- a/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml
@@ -11,25 +11,37 @@ maintainers:
properties:
compatible:
- items:
- - enum:
- - brcm,brcmstb-memc-ddr-rev-b.1.x
- - brcm,brcmstb-memc-ddr-rev-b.2.0
- - brcm,brcmstb-memc-ddr-rev-b.2.1
- - brcm,brcmstb-memc-ddr-rev-b.2.2
- - brcm,brcmstb-memc-ddr-rev-b.2.3
- - brcm,brcmstb-memc-ddr-rev-b.2.5
- - brcm,brcmstb-memc-ddr-rev-b.2.6
- - brcm,brcmstb-memc-ddr-rev-b.2.7
- - brcm,brcmstb-memc-ddr-rev-b.2.8
- - brcm,brcmstb-memc-ddr-rev-b.3.0
- - brcm,brcmstb-memc-ddr-rev-b.3.1
- - brcm,brcmstb-memc-ddr-rev-c.1.0
- - brcm,brcmstb-memc-ddr-rev-c.1.1
- - brcm,brcmstb-memc-ddr-rev-c.1.2
- - brcm,brcmstb-memc-ddr-rev-c.1.3
- - brcm,brcmstb-memc-ddr-rev-c.1.4
- - const: brcm,brcmstb-memc-ddr
+ oneOf:
+ - description: Revision > 2.1 controllers
+ items:
+ - enum:
+ - brcm,brcmstb-memc-ddr-rev-b.2.2
+ - brcm,brcmstb-memc-ddr-rev-b.2.3
+ - brcm,brcmstb-memc-ddr-rev-b.2.5
+ - brcm,brcmstb-memc-ddr-rev-b.2.6
+ - brcm,brcmstb-memc-ddr-rev-b.2.7
+ - brcm,brcmstb-memc-ddr-rev-b.2.8
+ - brcm,brcmstb-memc-ddr-rev-b.3.0
+ - brcm,brcmstb-memc-ddr-rev-b.3.1
+ - brcm,brcmstb-memc-ddr-rev-c.1.0
+ - brcm,brcmstb-memc-ddr-rev-c.1.1
+ - brcm,brcmstb-memc-ddr-rev-c.1.2
+ - brcm,brcmstb-memc-ddr-rev-c.1.3
+ - brcm,brcmstb-memc-ddr-rev-c.1.4
+ - const: brcm,brcmstb-memc-ddr-rev-b.2.1
+ - const: brcm,brcmstb-memc-ddr
+ - description: Revision 2.1 controllers
+ items:
+ - const: brcm,brcmstb-memc-ddr-rev-b.2.1
+ - const: brcm,brcmstb-memc-ddr
+ - description: Revision 2.0 controllers
+ items:
+ - const: brcm,brcmstb-memc-ddr-rev-b.2.0
+ - const: brcm,brcmstb-memc-ddr
+ - description: Revision 1.x controllers
+ items:
+ - const: brcm,brcmstb-memc-ddr-rev-b.1.x
+ - const: brcm,brcmstb-memc-ddr
reg:
maxItems: 1
@@ -46,7 +58,9 @@ additionalProperties: false
examples:
- |
memory-controller@9902000 {
- compatible = "brcm,brcmstb-memc-ddr-rev-c.1.1", "brcm,brcmstb-memc-ddr";
+ compatible = "brcm,brcmstb-memc-ddr-rev-c.1.1",
+ "brcm,brcmstb-memc-ddr-rev-b.2.1",
+ "brcm,brcmstb-memc-ddr";
reg = <0x9902000 0x600>;
clock-frequency = <2133000000>;
};
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc
@ 2025-06-09 21:23 Florian Fainelli
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Florian Fainelli @ 2025-06-09 21:23 UTC (permalink / raw)
To: linux-kernel
Cc: Florian Fainelli, Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Broadcom internal kernel review list,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE
Since the conversation died off in
https://lore.kernel.org/all/20241217194439.929040-2-florian.fainelli@broadcom.com/
here is a second attempt at addressing what I understood from the
conversation back then.
Changes in v2:
- define "brcm,brcmstb-memc-ddr-rev-b.2.1" as the fallback property
Florian Fainelli (2):
dt-bindings: memory-controller: Define fallback compatible
memory: brcmstb_memc: Simplify compatible matching
.../brcm,brcmstb-memc-ddr.yaml | 54 +++++++++++-------
drivers/memory/brcmstb_memc.c | 56 +------------------
2 files changed, 36 insertions(+), 74 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible
2025-06-09 21:23 [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Florian Fainelli
@ 2025-06-09 21:23 ` Florian Fainelli
2025-06-25 19:45 ` Rob Herring (Arm)
2025-06-27 11:28 ` Geert Uytterhoeven
2025-06-09 21:23 ` [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching Florian Fainelli
2025-06-27 5:57 ` [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Krzysztof Kozlowski
2 siblings, 2 replies; 7+ messages in thread
From: Florian Fainelli @ 2025-06-09 21:23 UTC (permalink / raw)
To: linux-kernel
Cc: Florian Fainelli, Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Broadcom internal kernel review list,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE
All of the DDR controllers beyond revision b.2.1 have had a consistent
layout, therefore define a "brcm,brcmstb-memc-ddr-rev-b.2.1" fallback
compatible string to match them all rather than having to continuously
add to the list.
Link: https://lore.kernel.org/all/20241217194439.929040-2-florian.fainelli@broadcom.com/
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
.../brcm,brcmstb-memc-ddr.yaml | 54 ++++++++++++-------
1 file changed, 34 insertions(+), 20 deletions(-)
diff --git a/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml b/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml
index 4b072c879b02..b935894bd4fc 100644
--- a/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/brcm,brcmstb-memc-ddr.yaml
@@ -11,25 +11,37 @@ maintainers:
properties:
compatible:
- items:
- - enum:
- - brcm,brcmstb-memc-ddr-rev-b.1.x
- - brcm,brcmstb-memc-ddr-rev-b.2.0
- - brcm,brcmstb-memc-ddr-rev-b.2.1
- - brcm,brcmstb-memc-ddr-rev-b.2.2
- - brcm,brcmstb-memc-ddr-rev-b.2.3
- - brcm,brcmstb-memc-ddr-rev-b.2.5
- - brcm,brcmstb-memc-ddr-rev-b.2.6
- - brcm,brcmstb-memc-ddr-rev-b.2.7
- - brcm,brcmstb-memc-ddr-rev-b.2.8
- - brcm,brcmstb-memc-ddr-rev-b.3.0
- - brcm,brcmstb-memc-ddr-rev-b.3.1
- - brcm,brcmstb-memc-ddr-rev-c.1.0
- - brcm,brcmstb-memc-ddr-rev-c.1.1
- - brcm,brcmstb-memc-ddr-rev-c.1.2
- - brcm,brcmstb-memc-ddr-rev-c.1.3
- - brcm,brcmstb-memc-ddr-rev-c.1.4
- - const: brcm,brcmstb-memc-ddr
+ oneOf:
+ - description: Revision > 2.1 controllers
+ items:
+ - enum:
+ - brcm,brcmstb-memc-ddr-rev-b.2.2
+ - brcm,brcmstb-memc-ddr-rev-b.2.3
+ - brcm,brcmstb-memc-ddr-rev-b.2.5
+ - brcm,brcmstb-memc-ddr-rev-b.2.6
+ - brcm,brcmstb-memc-ddr-rev-b.2.7
+ - brcm,brcmstb-memc-ddr-rev-b.2.8
+ - brcm,brcmstb-memc-ddr-rev-b.3.0
+ - brcm,brcmstb-memc-ddr-rev-b.3.1
+ - brcm,brcmstb-memc-ddr-rev-c.1.0
+ - brcm,brcmstb-memc-ddr-rev-c.1.1
+ - brcm,brcmstb-memc-ddr-rev-c.1.2
+ - brcm,brcmstb-memc-ddr-rev-c.1.3
+ - brcm,brcmstb-memc-ddr-rev-c.1.4
+ - const: brcm,brcmstb-memc-ddr-rev-b.2.1
+ - const: brcm,brcmstb-memc-ddr
+ - description: Revision 2.1 controllers
+ items:
+ - const: brcm,brcmstb-memc-ddr-rev-b.2.1
+ - const: brcm,brcmstb-memc-ddr
+ - description: Revision 2.0 controllers
+ items:
+ - const: brcm,brcmstb-memc-ddr-rev-b.2.0
+ - const: brcm,brcmstb-memc-ddr
+ - description: Revision 1.x controllers
+ items:
+ - const: brcm,brcmstb-memc-ddr-rev-b.1.x
+ - const: brcm,brcmstb-memc-ddr
reg:
maxItems: 1
@@ -46,7 +58,9 @@ additionalProperties: false
examples:
- |
memory-controller@9902000 {
- compatible = "brcm,brcmstb-memc-ddr-rev-c.1.1", "brcm,brcmstb-memc-ddr";
+ compatible = "brcm,brcmstb-memc-ddr-rev-c.1.1",
+ "brcm,brcmstb-memc-ddr-rev-b.2.1",
+ "brcm,brcmstb-memc-ddr";
reg = <0x9902000 0x600>;
clock-frequency = <2133000000>;
};
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching
2025-06-09 21:23 [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Florian Fainelli
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
@ 2025-06-09 21:23 ` Florian Fainelli
2025-06-27 5:57 ` [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Krzysztof Kozlowski
2 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2025-06-09 21:23 UTC (permalink / raw)
To: linux-kernel
Cc: Florian Fainelli, Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Broadcom internal kernel review list,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE
Now that a "brcm,brcmstb-memc-ddr-rev-b.2.x" fallback compatible string
has been defined, we can greatly simplify the matching within the driver
to only look for that compatible string and nothing else.
The fallback "brcm,brcmstb-memc-ddr" is also updated to assume the V21
register layout since that is the most common nowadays.
Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
---
drivers/memory/brcmstb_memc.c | 56 ++---------------------------------
1 file changed, 2 insertions(+), 54 deletions(-)
diff --git a/drivers/memory/brcmstb_memc.c b/drivers/memory/brcmstb_memc.c
index c87b37e2c1f0..ba73470b1b13 100644
--- a/drivers/memory/brcmstb_memc.c
+++ b/drivers/memory/brcmstb_memc.c
@@ -184,62 +184,10 @@ static const struct of_device_id brcmstb_memc_of_match[] = {
.compatible = "brcm,brcmstb-memc-ddr-rev-b.2.1",
.data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
},
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.2",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.3",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.5",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.6",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.7",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.8",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.3.0",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-b.3.1",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-c.1.0",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-c.1.1",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-c.1.2",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-c.1.3",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- {
- .compatible = "brcm,brcmstb-memc-ddr-rev-c.1.4",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
- },
- /* default to the original offset */
+ /* default to the V21 offset */
{
.compatible = "brcm,brcmstb-memc-ddr",
- .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V1X]
+ .data = &brcmstb_memc_versions[BRCMSTB_MEMC_V21]
},
{}
};
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
@ 2025-06-25 19:45 ` Rob Herring (Arm)
2025-06-27 11:28 ` Geert Uytterhoeven
1 sibling, 0 replies; 7+ messages in thread
From: Rob Herring (Arm) @ 2025-06-25 19:45 UTC (permalink / raw)
To: Florian Fainelli
Cc: linux-kernel, linux-arm-kernel, devicetree, Conor Dooley,
Broadcom internal kernel review list, Krzysztof Kozlowski
On Mon, 09 Jun 2025 14:23:55 -0700, Florian Fainelli wrote:
> All of the DDR controllers beyond revision b.2.1 have had a consistent
> layout, therefore define a "brcm,brcmstb-memc-ddr-rev-b.2.1" fallback
> compatible string to match them all rather than having to continuously
> add to the list.
>
> Link: https://lore.kernel.org/all/20241217194439.929040-2-florian.fainelli@broadcom.com/
> Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
> ---
> .../brcm,brcmstb-memc-ddr.yaml | 54 ++++++++++++-------
> 1 file changed, 34 insertions(+), 20 deletions(-)
>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc
2025-06-09 21:23 [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Florian Fainelli
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
2025-06-09 21:23 ` [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching Florian Fainelli
@ 2025-06-27 5:57 ` Krzysztof Kozlowski
2 siblings, 0 replies; 7+ messages in thread
From: Krzysztof Kozlowski @ 2025-06-27 5:57 UTC (permalink / raw)
To: linux-kernel, Florian Fainelli
Cc: Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Broadcom internal kernel review list, devicetree,
linux-arm-kernel
On Mon, 09 Jun 2025 14:23:54 -0700, Florian Fainelli wrote:
> Since the conversation died off in
> https://lore.kernel.org/all/20241217194439.929040-2-florian.fainelli@broadcom.com/
> here is a second attempt at addressing what I understood from the
> conversation back then.
>
> Changes in v2:
>
> [...]
Applied, thanks!
[1/2] dt-bindings: memory-controller: Define fallback compatible
https://git.kernel.org/krzk/linux-mem-ctrl/c/501be7cecec9aaf9cd52e76d0820efd6d0b952e7
[2/2] memory: brcmstb_memc: Simplify compatible matching
https://git.kernel.org/krzk/linux-mem-ctrl/c/0e3dd41a94b29d5d9973dac356ebd37f87bd8a37
Best regards,
--
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
2025-06-25 19:45 ` Rob Herring (Arm)
@ 2025-06-27 11:28 ` Geert Uytterhoeven
1 sibling, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2025-06-27 11:28 UTC (permalink / raw)
To: Florian Fainelli
Cc: linux-kernel, Krzysztof Kozlowski, Rob Herring, Conor Dooley,
Broadcom internal kernel review list,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
moderated list:BROADCOM BCM7XXX ARM ARCHITECTURE
Hi Florian,
On Tue, 10 Jun 2025 at 16:32, Florian Fainelli
<florian.fainelli@broadcom.com> wrote:
> All of the DDR controllers beyond revision b.2.1 have had a consistent
> layout, therefore define a "brcm,brcmstb-memc-ddr-rev-b.2.1" fallback
> compatible string to match them all rather than having to continuously
> add to the list.
>
> Link: https://lore.kernel.org/all/20241217194439.929040-2-florian.fainelli@broadcom.com/
> Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
Thanks for your patch, which is now commit 501be7cecec9aaf9
("dt-bindings: memory-controller: Define fallback compatible")
in mem-ctrl/for-next
> .../brcm,brcmstb-memc-ddr.yaml | 54 ++++++++++++-------
The oneline-summary really needs a "brcm" part, as this does
not apply to all memory controllers.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-06-27 11:28 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-09 21:23 [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Florian Fainelli
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
2025-06-25 19:45 ` Rob Herring (Arm)
2025-06-27 11:28 ` Geert Uytterhoeven
2025-06-09 21:23 ` [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching Florian Fainelli
2025-06-27 5:57 ` [PATCH v2 0/2] Simplify compatible matching for brcmstb_memc Krzysztof Kozlowski
-- strict thread matches above, loose matches on Subject: below --
2025-06-09 21:23 Florian Fainelli
2025-06-09 21:23 ` [PATCH v2 1/2] dt-bindings: memory-controller: Define fallback compatible Florian Fainelli
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).