.../devicetree/bindings/mfd/qcom,pm8008.yaml | 7 +-- drivers/mfd/qcom-pm8008.c | 52 ++++++++++++------- 2 files changed, 38 insertions(+), 21 deletions(-)
The camera PMIC on the Lenovo Yoga Slim 7x Gen 11 (Qualcomm Snapdragon X2 Elite, glymur) has no interrupt line routed on the board. That is not a wiring omission - the part has no INT pin brought out in this design, and the sensor resets are driven from TLMM instead. The part is a PM8010; this board describes it with the qcom,pm8008 compatible, which is what binds the driver touched here. qcom-pm8008 currently requires an interrupt: the binding marks it required and the driver fails probe without one, so the PMIC cannot be described at all on such a board even though everything it provides - the regulators - works fine without interrupts. Patch 1 relaxes the binding, patch 2 makes the driver treat the interrupt as optional and skip the regmap-irq chip when it is absent. Boards that do wire the interrupt are unaffected. Tested on a Lenovo Yoga Slim 7x Gen 11 (DMI 83QR, "Yoga Slim 7 14Q8Y11"), where this PMIC powers an OV08X40 sensor. The DT change that describes this PMIC is not part of this series; it lands with the board DTS, which is being upstreamed separately. Oleg Keri (2): dt-bindings: mfd: qcom,pm8008: make the interrupt line optional mfd: qcom-pm8008: support PMICs with no interrupt line .../devicetree/bindings/mfd/qcom,pm8008.yaml | 7 +-- drivers/mfd/qcom-pm8008.c | 52 ++++++++++++------- 2 files changed, 38 insertions(+), 21 deletions(-) -- 2.55.0 base-commit: df2908090cda368b01ff43709f51890076c56157
Please drop this series.
It duplicates, as a strict subset, work that was already on the list a day
before I posted:
[v2,3/6] dt-bindings: mfd: pm8008: Add PM8010 I2C support
[v2,5/6] mfd: qcom-pm8008: Add support for PM8010 PMIC
https://lore.kernel.org/all/20260907-glymur_camss-v2-0-75f7982dc983@oss.qualcomm.com/
Nihal's 3/6 relaxes the same required: entries mine does and more, and adds
the qcom,pm8010-i2c compatible; his 5/6 already carries the no-interrupt
path my 2/2 was adding:
static const struct mfd_cell pm8008_no_irq_cells[] = {
MFD_CELL_NAME("pm8008-regulator"),
};
on top of a PM8010 IRQ chip, match data and a pm8010-regulator cell. There
is nothing in my series that his does not do better. My apologies for the
noise - I should have searched the list before posting.
Nihal, if it is useful: the Lenovo Yoga Slim 7x Gen 11 (glymur, DMI 83QR)
has a PM8010 whose INT pin is genuinely not routed on the board, so it
exercises your no-IRQ path rather than being a DT omission. I have been
running an equivalent no-IRQ path there since 2026-08-25 - the LDOs
register and the OV08X40 works - and I am happy to test your series on it
and send a Tested-by once I have actually run it.
Your 6/6 also shows that describing a PM8010 as "qcom,pm8008", which is
what I do today, silently programs the wrong voltage ranges. On that board
the sensor takes dovdd from ldo4 at 1.8 V, and:
pm8008_pldo_ranges 1504000 + 8000 * n -> 1.8 V is selector 37
pm8010_pldo_lv_ranges 1800000 + 200000 * n -> 1.8 V is selector 0
so the same regulator-min/max-microvolt lands on a completely different
register value depending on which compatible the node carries. ldo3 and
ldo6 have the same split. ldo2 and ldo7 happen to map identically because
the nldo and pldo ranges share a base and step and differ only in their
upper bound.
The camera works on my board today despite this, which I would treat as
luck rather than evidence that it is harmless. It does mean your series
fixes a latent bug for boards already describing a PM8010 as qcom,pm8008,
not merely adding a new compatible - worth a line in 6/6 if you respin,
since those boards need the DT change and the driver change together.
Hi Oleg,
On 9/8/2026 7:10 PM, Oleg Keri wrote:
> Please drop this series.
>
> It duplicates, as a strict subset, work that was already on the list a day
> before I posted:
>
> [v2,3/6] dt-bindings: mfd: pm8008: Add PM8010 I2C support
> [v2,5/6] mfd: qcom-pm8008: Add support for PM8010 PMIC
> https://lore.kernel.org/all/20260907-glymur_camss-v2-0-75f7982dc983@oss.qualcomm.com/
>
> Nihal's 3/6 relaxes the same required: entries mine does and more, and adds
> the qcom,pm8010-i2c compatible; his 5/6 already carries the no-interrupt
> path my 2/2 was adding:
>
> static const struct mfd_cell pm8008_no_irq_cells[] = {
> MFD_CELL_NAME("pm8008-regulator"),
> };
>
> on top of a PM8010 IRQ chip, match data and a pm8010-regulator cell. There
> is nothing in my series that his does not do better. My apologies for the
> noise - I should have searched the list before posting.
>
> Nihal, if it is useful: the Lenovo Yoga Slim 7x Gen 11 (glymur, DMI 83QR)
> has a PM8010 whose INT pin is genuinely not routed on the board, so it
> exercises your no-IRQ path rather than being a DT omission. I have been
> running an equivalent no-IRQ path there since 2026-08-25 - the LDOs
> register and the OV08X40 works - and I am happy to test your series on it
> and send a Tested-by once I have actually run it.
Thanks, we would appreciate this. Please note Mark has asked us to split the existing
series, so we would be sending out separate patch series soon for CAMSS support
and PM8010 support.
>
> Your 6/6 also shows that describing a PM8010 as "qcom,pm8008", which is
> what I do today, silently programs the wrong voltage ranges. On that board
> the sensor takes dovdd from ldo4 at 1.8 V, and:
>
> pm8008_pldo_ranges 1504000 + 8000 * n -> 1.8 V is selector 37
> pm8010_pldo_lv_ranges 1800000 + 200000 * n -> 1.8 V is selector 0
>
> so the same regulator-min/max-microvolt lands on a completely different
> register value depending on which compatible the node carries. ldo3 and
> ldo6 have the same split. ldo2 and ldo7 happen to map identically because
> the nldo and pldo ranges share a base and step and differ only in their
> upper bound.
>
> The camera works on my board today despite this, which I would treat as
> luck rather than evidence that it is harmless. It does mean your series
> fixes a latent bug for boards already describing a PM8010 as qcom,pm8008,
Just asking, have you noticed any boards doing this currently ?
Thanks,
Jishnu
> not merely adding a new compatible - worth a line in 6/6 if you respin,
> since those boards need the DT change and the driver change together.
On Thu, 10 Sep 2026 14:40:35 +0530 Jishnu Prakash <jishnu.prakash@oss.qualcomm.com> wrote: > Please note Mark has asked us to split the existing series, so we would > be sending out separate patch series soon for CAMSS support and PM8010 > support. Great, I'll test the PM8010 one as soon as it's out. > Just asking, have you noticed any boards doing this currently ? Only mine, and it's not upstream yet. Konrad's list is right - those are all real PM8008s. One correction to my earlier mail: the compatible does not change what gets written to the rail. set_voltage_sel() writes millivolts, so 1.8 V is 1800 in VSET either way. The wrong compatible only misdescribes the LDO's range to the regulator core. Sorry for overstating it. Thanks, Oleg
On 9/10/26 11:10 AM, Jishnu Prakash wrote: > Hi Oleg, > > On 9/8/2026 7:10 PM, Oleg Keri wrote: >> Please drop this series. >> >> It duplicates, as a strict subset, work that was already on the list a day >> before I posted: [...] >> The camera works on my board today despite this, which I would treat as >> luck rather than evidence that it is harmless. It does mean your series >> fixes a latent bug for boards already describing a PM8010 as qcom,pm8008, > > Just asking, have you noticed any boards doing this currently ? Not upstream, I don't think: $ rg qcom,pm8008 arch -l arch/arm64/boot/dts/qcom/qrb2210-rb1.dts arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts arch/arm64/boot/dts/qcom/milos-fairphone-fp6.dts Konrad
© 2016 - 2026 Red Hat, Inc.