• Mark Brown's avatar
    regulator: of: Provide simplified DT parsing method · a0c7b164
    Mark Brown authored
    Currently regulator drivers which support DT all repeat very similar code
    to supply a list of known regulator identifiers to be matched with DT,
    convert that to platform data which is then matched up with the regulators
    as they are registered. This is both fiddly to get right and for devices
    which can use the standard helpers to provide their operations is the main
    source of code in the driver.
    
    Since this code is essentially identical for most drivers we can factor it
    out into the core, moving the identifiers in the match table into the
    regulator descriptors and also allowing drivers to pass in the name of the
    subnode to search. When a driver provides an of_match string for the
    regulator the core will attempt to use that to obtain init_data, allowing
    the driver to remove all explicit code for DT parsing and simply provide
    data instead.
    
    The current code leaks the phandles for the child nodes, this will be
    addressed incrementally and makes no practical difference for FDT anyway
    as the DT data structures are never freed.
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    a0c7b164
of_regulator.c 6.75 KB