[PATCH] ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk

Simon Horman horms at verge.net.au
Tue Mar 10 17:54:52 PDT 2015

On Mon, Mar 09, 2015 at 08:50:40PM +0100, Geert Uytterhoeven wrote:
> The r8a7790/lager and r8a7791/koelsch development boards have da9063 and
> da9210 regulators.  Both regulators have their interrupt request lines
> tied to the same interrupt pin (IRQ2) on the SoC.
> After cold boot or da9063-induced restart, both the da9063 and da9210
> seem to assert their interrupt request lines.  Hence as soon as one
> driver requests this irq, it gets stuck in an interrupt storm, as it
> only manages to deassert its own interrupt request line, and the other
> driver hasn't installed an interrupt handler yet.
> To handle this, install a quirk that masks the interrupts in both the
> da9063 and da9210.  This quirk has to run after the i2c master driver
> has been initialized, but before the i2c slave drivers are initialized.
> As it depends on i2c, select I2C if one of the affected platforms is
> enabled in the kernel config.
> On koelsch, the following happens:
>   - Cold boot or reboot using the da9063 restart handler:
> 	IRQ2 is asserted, installing da9063/da9210 regulator quirk
> 	...
> 	i2c i2c-6: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
> 	i2c 6-0058: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
> 	i2c 6-0058: Detected da9063
> 	i2c 6-0058: Masking da9063 interrupt sources
> 	i2c 6-0068: regulator_quirk_notify: 1, IRQC_MONITOR = 0x3fb
> 	i2c 6-0068: Detected da9210
> 	i2c 6-0068: Masking da9210 interrupt sources
> 	i2c 6-0068: IRQ2 is not asserted, removing quirk
>   - Warm boot (reset button):
> 	rcar_gen2_regulator_quirk: IRQ2 is not asserted, not installing quirk
> Signed-off-by: Geert Uytterhoeven <geert+renesas at glider.be>
> Tested-by: Wolfram Sang <wsa+renesas at sang-engineering.com>
> Reviewed-by: Mark Brown <broonie at kernel.org>

Thanks, I have queued this up for v4.1.

More information about the linux-arm-kernel mailing list