]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
authorAndreas Kemnade <andreas@kemnade.info>
Mon, 31 Mar 2025 14:44:39 +0000 (16:44 +0200)
committerKevin Hilman <khilman@baylibre.com>
Fri, 11 Apr 2025 00:42:38 +0000 (17:42 -0700)
The late init call just writes to omap4 registers as soon as
CONFIG_MFD_CPCAP is enabled without checking whether the
cpcap driver is actually there or the SoC is indeed an
OMAP4.
Rather do these things only with the right device combination.

Fixes booting the BT200 with said configuration enabled and non-factory
X-Loader and probably also some surprising behavior on other devices.

Fixes: c145649bf262 ("ARM: OMAP2+: Configure voltage controller for cpcap to low-speed")
CC: stable@vger.kernel.org
Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reivewed-by: Tony Lindgren <tony@atomide.com>
Link: https://lore.kernel.org/r/20250331144439.769697-1-andreas@kemnade.info
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
arch/arm/mach-omap2/pmic-cpcap.c

index 4f31e61c0c90cac5528b32ae17de201292e484e6..9f9a20274db84875039b12ae6e08244d1546050d 100644 (file)
@@ -264,7 +264,11 @@ int __init omap4_cpcap_init(void)
 
 static int __init cpcap_late_init(void)
 {
-       omap4_vc_set_pmic_signaling(PWRDM_POWER_RET);
+       if (!of_find_compatible_node(NULL, NULL, "motorola,cpcap"))
+               return 0;
+
+       if (soc_is_omap443x() || soc_is_omap446x() || soc_is_omap447x())
+               omap4_vc_set_pmic_signaling(PWRDM_POWER_RET);
 
        return 0;
 }