* [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 2025-06-09 21:23 ` [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching Florian Fainelli 0 siblings, 2 replies; 6+ 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 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] 6+ 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-09 21:23 ` [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching Florian Fainelli 1 sibling, 0 replies; 6+ 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 [flat|nested] 6+ 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 1 sibling, 0 replies; 6+ 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 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 [flat|nested] 6+ 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 0 siblings, 1 reply; 6+ 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] 6+ 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 0 siblings, 2 replies; 6+ 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 [flat|nested] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ messages in thread
end of thread, other threads:[~2025-06-27 11:28 UTC | newest] Thread overview: 6+ 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-09 21:23 ` [PATCH v2 2/2] memory: brcmstb_memc: Simplify compatible matching Florian Fainelli 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®