]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
memory: brcmstb_memc: Expand LPDDR4 check to cover for LPDDR5
authorFlorian Fainelli <florian.fainelli@broadcom.com>
Thu, 22 Jan 2026 00:35:00 +0000 (16:35 -0800)
committerKrzysztof Kozlowski <krzk@kernel.org>
Thu, 26 Feb 2026 08:43:04 +0000 (09:43 +0100)
The same limitations that apply to LPDDR4 also apply to LPDDR5. Expand
the check and rename accordingly.

Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20260122003501.1191059-1-florian.fainelli@broadcom.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
drivers/memory/brcmstb_memc.c

index ba73470b1b134e5d8134c75a641bfa6f88a3cd36..c28fe90936168a073fa7d713f0b99bbc796be3b0 100644 (file)
@@ -14,6 +14,7 @@
 
 #define REG_MEMC_CNTRLR_CONFIG         0x00
 #define  CNTRLR_CONFIG_LPDDR4_SHIFT    5
+#define  CNTRLR_CONFIG_LPDDR5_SHIFT    6
 #define  CNTRLR_CONFIG_MASK            0xf
 #define REG_MEMC_SRPD_CFG_21           0x20
 #define REG_MEMC_SRPD_CFG_20           0x34
@@ -34,14 +35,15 @@ struct brcmstb_memc {
        u32 srpd_offset;
 };
 
-static int brcmstb_memc_uses_lpddr4(struct brcmstb_memc *memc)
+static int brcmstb_memc_uses_lpddr45(struct brcmstb_memc *memc)
 {
        void __iomem *config = memc->ddr_ctrl + REG_MEMC_CNTRLR_CONFIG;
        u32 reg;
 
        reg = readl_relaxed(config) & CNTRLR_CONFIG_MASK;
 
-       return reg == CNTRLR_CONFIG_LPDDR4_SHIFT;
+       return reg == CNTRLR_CONFIG_LPDDR4_SHIFT ||
+              reg == CNTRLR_CONFIG_LPDDR5_SHIFT;
 }
 
 static int brcmstb_memc_srpd_config(struct brcmstb_memc *memc,
@@ -95,7 +97,7 @@ static ssize_t srpd_store(struct device *dev, struct device_attribute *attr,
         * dynamic tuning process will also get affected by the inactivity
         * timeout, thus making it non functional.
         */
-       if (brcmstb_memc_uses_lpddr4(memc))
+       if (brcmstb_memc_uses_lpddr45(memc))
                return -EOPNOTSUPP;
 
        ret = kstrtouint(buf, 10, &val);