Re: [PATCH 1/2] regulator: pca9450: Correct interrupt type

From: Peng Fan

Date: Mon Mar 23 2026 - 08:36:36 EST


Hi Laurent,

On Mon, Mar 23, 2026 at 12:58:58PM +0200, Laurent Pinchart wrote:
>On Tue, Mar 10, 2026 at 01:15:34PM +0000, Mark Brown wrote:
>> On Tue, Mar 10, 2026 at 12:25:52PM +0800, Peng Fan (OSS) wrote:
>> > From: Peng Fan <peng.fan@xxxxxxx>
>> >
>> > Kernel warning on i.MX8MP-EVK when doing module test:
>> > irq: type mismatch, failed to map hwirq-3 for gpio@30200000!
>> >
>> > Per PCA945[X] specification: The IRQ_B pin is pulled low when any unmasked
>> > interrupt bit status is changed and it is released high once application
>> > processor read INT1 register.
>> >
>> > So the interrupt should be configured as IRQF_TRIGGER_LOW, not
>> > IRQF_TRIGGER_FALLING.
>>
>> There appear to be a bunch of DTS files which specify edge triggered
>> interrupts for these devices (eg, imx8mm-emtop-som.dtsi and
>> imx8mp-debix-model-a.dts) though more getting it right. Not an issue
>> for this patch but probably wants cleaning up.
>
>This patch creates an interrupt storm on the i.MX8MP-based Debix Model A
>board. I'm getting about 700 interrupts per second from the PMIC (and
>about 3000 interrupts per second from the I2C controller).
>
>arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts specifies the
>PMIC interrupt as IRQ_TYPE_EDGE_RISING, setting it to IRQ_TYPE_LEVEL_LOW
>does not help.
>
>Peng, I can run test to debug the issue if you tell me what to test. I'd
>like to fix the problem and avoid an annoying regression in v7.0, either
>with a follow-up patch, or with a revert if we're too short on time.

Please help try whether below changes could help.

I checked the schematic and iomux settings, I suspect the pad settings might
not be correct, it does not have PE set, even it has PUE. Without PE, PUE
will not work per my understanding.

If below patch works for you, I will post this patch to list. otherwise,
we have to revert my patch or remove IRQ_TRIGGER_LOW when calling
devm_request_irq().

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts b/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts
index 9422beee30b29..df7489587e48e 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts
@@ -440,7 +440,7 @@ MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA 0x400001c3

pinctrl_pmic: pmicirqgrp {
fsl,pins = <
- MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x41
+ MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03 0x000001c0
>;
};

Thanks,
Peng

>
>--
>Regards,
>
>Laurent Pinchart
>