Re: [PATCH v2 7/7] mfd: qcom-pm8008: Tolerate missing interrupt

From: Jishnu Prakash

Date: Mon Oct 19 2026 - 01:02:12 EST


Hi Konrad,

On 10/15/2026 5:35 PM, Konrad Dybcio wrote:
> On 10/14/26 12:32 PM, Jishnu Prakash wrote:
>> From: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>>
>> PM8010 is often wired up with the interrupt pin tied to ground. Only
>> register the IRQ infrastructure if we have a parent irq.
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxxxx>
>> Co-developed-by: Dhruvin Rajpura <drajpura@xxxxxxxxxxxxxxxx>
>> Signed-off-by: Dhruvin Rajpura <drajpura@xxxxxxxxxxxxxxxx>
>> Co-developed-by: Jishnu Prakash <jishnu.prakash@xxxxxxxxxxxxxxxx>
>> Signed-off-by: Jishnu Prakash <jishnu.prakash@xxxxxxxxxxxxxxxx>
>> ---
>> drivers/mfd/qcom-pm8008.c | 82 ++++++++++++++++++++++++++++++++++-------------
>> 1 file changed, 60 insertions(+), 22 deletions(-)
>>
>> diff --git a/drivers/mfd/qcom-pm8008.c b/drivers/mfd/qcom-pm8008.c
>> index 4179427f3891..8b1bbb4052a7 100644
>> --- a/drivers/mfd/qcom-pm8008.c
>> +++ b/drivers/mfd/qcom-pm8008.c
>> @@ -208,6 +208,14 @@ static const struct mfd_cell pm8010_cells[] = {
>> MFD_CELL_RES("qpnp-temp-alarm", pm8008_temp_res),
>> };
>>
>> +static const struct mfd_cell pm8008_no_irq_cells[] = {
>> + MFD_CELL_NAME("pm8008-regulator"),
>
> There's no reason to not register the temperature alarm driver
> if we don't have an irq. It will not be able to carry out the
> "alarm" part, but one can still poll on it.
>

That suggestion does make sense, but I think it would not
work, for multiple reasons. Let me explain them here.


If we are talking about using drivers/thermal/qcom/qcom-spmi-temp-alarm.c,
the driver has this check in the probe:

irq = platform_get_irq(pdev, 0);
if (irq < 0)
return irq;

So its probe would fail right now if it does not have
an IRQ specified.



Another point is, PM8010 does not have an ADC peripheral.
Without an ADC channel to read from, temperature read from
this temp-alarm driver would show a constant value most of
the time (37000, for stage 0) and this would be updated only
if a high temperature stage (possibly around 90-100 degC)
is crossed, so it may not be very useful for polling without
interrupts either.



And another point we should note is, the MFD cell name
"qpnp-temp-alarm" used right now does not bind to our temp-alarm
driver and this was intentional, as explained by Johan Hovold
in his change (mfd: pm8008: Rework to match new DT binding),
in the last paragraph of the commit message:

Finally, note that the temperature alarm and GPIO subdrivers need some
minor rework before they can be used with non-SPMI devices like the
PM8008. The temperature alarm MFD cell name specifically uses a "qpnp"
rather than "spmi" prefix to prevent binding until the driver has been
updated.

Since these changes are not yet done, we cannot use
temp-alarm for PM8008 or PM8010 over I2C for now.

Thanks,
Jishnu


> Konrad