Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

soc: bcm: brcmstb: Add missing DDR MEMC compatible strings

We would not be matching the following chip/compatible strings
combinations, which would lead to not setting the warm boot flag
correctly, fix that:

7260A0/B0: brcm,brcmstb-memc-ddr-rev-b.2.1
7255A0: brcm,brcmstb-memc-ddr-rev-b.2.3
7278Bx: brcm,brcmstb-memc-ddr-rev-b.3.1

The B2.1 core (which is in 7260 A0 and B0) doesn't have the
SHIMPHY_ADDR_CNTL_0_DDR_PAD_CNTRL setup in the memsys init code, nor
does it have the warm boot flag re-definition on entry. Those changes
were for B2.2 and later MEMSYS cores. Fall back to the previous S2/S3
entry method for these specific chips.

Fixes: 0b741b8234c8 ("soc: bcm: brcmstb: Add support for S2/S3/S5 suspend states (ARM)")
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

+15
+3
Documentation/devicetree/bindings/arm/bcm/brcm,brcmstb.txt
··· 189 189 190 190 Required properties: 191 191 - compatible : should contain one of these 192 + "brcm,brcmstb-memc-ddr-rev-b.2.1" 192 193 "brcm,brcmstb-memc-ddr-rev-b.2.2" 194 + "brcm,brcmstb-memc-ddr-rev-b.2.3" 193 195 "brcm,brcmstb-memc-ddr-rev-b.3.0" 196 + "brcm,brcmstb-memc-ddr-rev-b.3.1" 194 197 "brcm,brcmstb-memc-ddr" 195 198 - reg : the MEMC DDR register range 196 199
+12
drivers/soc/bcm/brcmstb/pm/pm-arm.c
··· 628 628 629 629 static const struct of_device_id brcmstb_memc_of_match[] = { 630 630 { 631 + .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.1", 632 + .data = &ddr_seq, 633 + }, 634 + { 631 635 .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.2", 632 636 .data = &ddr_seq_b22, 633 637 }, 634 638 { 639 + .compatible = "brcm,brcmstb-memc-ddr-rev-b.2.3", 640 + .data = &ddr_seq_b22, 641 + }, 642 + { 635 643 .compatible = "brcm,brcmstb-memc-ddr-rev-b.3.0", 644 + .data = &ddr_seq_b22, 645 + }, 646 + { 647 + .compatible = "brcm,brcmstb-memc-ddr-rev-b.3.1", 636 648 .data = &ddr_seq_b22, 637 649 }, 638 650 {