Re: [PATCH 1/2] regulator: pca9450: Correct interrupt type
From: Laurent Pinchart
Date: Mon Mar 23 2026 - 09:51:00 EST
Hi Peng,
On Mon, Mar 23, 2026 at 08:38:24PM +0800, Peng Fan wrote:
> 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
> >;
> };
>
This seems to fix the issue (I've also set the IRQ type to
IRQ_TYPE_LEVEL_LOW).
I have checked the schematics of the Debix board, and there's no pull-up
resistor on the interrupt line, so an internal pull-up is indeed
required.
Will you submit a patch for v7.0 ?
--
Regards,
Laurent Pinchart