Re: [PATCH] mfd: max77686: fix support for devices without irq specified

Krzysztof Kozlowski
2014-08-08T10:54:15Z

On pią, 2014-08-08 at 12:09 +0200, Javier Martinez Canillas wrote:
> Hello,
>
> On 08/08/2014 10:58 AM, Javier Martinez Canillas wrote:
> >
> >>
> >> Not sufficient. You have to also fix RTC driver (OOPS from Trats2
> >> attached). Also consider adding checks for (max77686->irq) to the
> >> suspend and resume.
> >>
> >
> > Right, the max77686 RTC driver assumes that an IRQ domain will be created on the
> > mfd driver so a virtual IRQ can be mapped for the RTC alarm1 IRQ. This
> > assumptions comes from the fact that the "interrupt" property is required
> > according to the DT binding doc.
> >
>
> Although for Trats2 I see that arch/arm/boot/dts/exynos4412-trats2.dts defines
> an interrupt, so I wonder why regmap_irq_get_virq() is giving an oops there:
>
> max77686_pmic@09 {
> compatible = "maxim,max77686";
> interrupt-parent = <&gpx0>;
> interrupts = <7 0>;
> reg = <0x09>;
> #clock-cells = <1>;
> ...

Because I am a nasty user :) and I removed the interrupts properties
manually (to test how the RTC will behave). Still the driver shouldn't
oops.

>
>
> > So the max77686 RTC wakealarm was not working for these boards before?

I don't know for Odroid but on Trats2 it works fine.

> >
> > Just to be sure that I understand the issue: these boards don't really have an
> > IRQ connected to the PMIC, is not that this information is just missing in the
> > Device Tree, right?
> >
>
> By looking at Odroid's 3.8 based vendor tree I see that an IRQ for the max77686
> PMIC is defined [0] using platform data:
>
> static struct max77686_platform_data exynos4_max77686_info = {
> .irq_gpio = EXYNOS4_GPX3(2),
> .ono = EXYNOS4_GPX1(2),
> .num_regulators = ARRAY_SIZE(max77686_regulators),
> .regulators = max77686_regulators,
> ...
>
> So maybe this information is missing in
> arch/arm/boot/dts/exynos4412-odroid-common.dtsi?

Yes, it seems it is missing.

Best regards,
Krzysztof

>
> Best regards,
> Javier
>
> [0]:
> https://github.com/hardkernel/linux/blob/odroid-3.8.y/arch/arm/mach-exynos/pmic-77686.h#L927