• Johan Hovold's avatar
    mfd: pm8008: Rework to match new DT binding · 288b5504
    Johan Hovold authored
    Rework the pm8008 driver to match the new devicetree binding which no
    longer describes internal details like interrupts and register offsets
    (including which of the two consecutive I2C addresses the registers
    belong to).
    
    Instead make the interrupt controller implementation internal and pass
    interrupts to the subdrivers using MFD cell resources.
    
    Note that subdrivers may either get their resources, like register block
    offsets, from the parent MFD or this can be included in the subdrivers
    directly.
    
    In the current implementation, the temperature alarm driver is generic
    enough to just get its base address and alarm interrupt from the parent
    driver, which already uses this information to implement the interrupt
    controller.
    
    The regulator driver, however, needs additional information like parent
    supplies and regulator characteristics so in that case it is easier to
    just augment its table with the regulator register base addresses.
    
    Similarly, the current GPIO driver already holds the number of pins and
    that lookup table can therefore also be extended with register offsets.
    
    Note that subdrivers can now access the two regmaps by name, even if the
    primary regmap is registered last so that it is returned by default when
    no name is provided in lookups.
    
    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.
    Tested-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
    Signed-off-by: default avatarJohan Hovold <johan+linaro@kernel.org>
    Link: https://lore.kernel.org/r/20240608155526.12996-11-johan+linaro@kernel.orgSigned-off-by: default avatarLee Jones <lee@kernel.org>
    288b5504
qcom-pm8008.c 7.14 KB