[PATCH] ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4

Andreas Kemnade posted 1 patch 8 months, 3 weeks ago
arch/arm/mach-omap2/pmic-cpcap.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
[PATCH] ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
Posted by Andreas Kemnade 8 months, 3 weeks ago
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>
---
 arch/arm/mach-omap2/pmic-cpcap.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-omap2/pmic-cpcap.c b/arch/arm/mach-omap2/pmic-cpcap.c
index 4f31e61c0c90..9f9a20274db8 100644
--- a/arch/arm/mach-omap2/pmic-cpcap.c
+++ b/arch/arm/mach-omap2/pmic-cpcap.c
@@ -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;
 }
-- 
2.39.5
Re: [PATCH] ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
Posted by Kevin Hilman 8 months, 1 week ago
On Mon, 31 Mar 2025 16:44:39 +0200, Andreas Kemnade wrote:
> 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.
> 
> [...]

Applied, thanks!

[1/1] ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
      commit: 7397daf1029d5bfd3415ec8622f5179603d5702d

Best regards,
-- 
Kevin Hilman <khilman@baylibre.com>
Re: [PATCH] ARM: omap: pmic-cpcap: do not mess around without CPCAP or OMAP4
Posted by Tony Lindgren 8 months, 3 weeks ago
* Andreas Kemnade <andreas@kemnade.info> [250331 14:45]:
> 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.

Nice catch:

Reivewed-by: Tony Lindgren <tony@atomide.com>