• Pawel Moll's avatar
    of: Keep track of populated platform devices · c6e126de
    Pawel Moll authored
    In "Device Tree powered" systems, platform devices are usually massively
    populated with of_platform_populate() call, executed at some level of
    initcalls, either by generic architecture or by platform-specific code.
    
    There are situations though where certain devices must be created (and
    bound with drivers) before all the others. This presents a challenge,
    as devices created explicitly would be created again by
    of_platform_populate().
    
    This patch tries to solve that issue in a generic way, adding a
    "populated" flag for a DT node description. Subsequent
    of_platform_populate() will skip such nodes (and its children) in
    a similar way to the non-available ones.
    
    This patch also adds of_platform_depopulate() as an operation
    complementary to the _populate() one. It removes a platform or an amba
    device populated from the Device Tree, together with its all children
    (leaving, however, devices without associated of_node untouched)
    clearing the "populated" flag on the way.
    Signed-off-by: default avatarPawel Moll <pawel.moll@arm.com>
    Reviewed-by: default avatarRob Herring <robh@kernel.org>
    Acked-by: default avatarGrant Likely <grant.likely@linaro.org>
    c6e126de
platform.c 15.1 KB