• Cristian Marussi's avatar
    regulator: core: add of_match_full_name boolean flag · e7095c35
    Cristian Marussi authored
    During regulators registration, if .of_match and .regulators_node are
    defined as non-null strings in struct regulator_desc the core searches the
    DT subtree rooted at .regulators_node trying to match, at first, .of_match
    against the 'regulator-compatible' property and, then, falling back to use
    the name of the node itself to determine a good match.
    
    Property 'regulator-compatible', though, is now deprecated and falling back
    to match against the node name, works fine only as long as the involved
    nodes are named in an unique way across the searched subtree; if that's not
    the case, like when using <common-name>@<unit> style naming for properties
    indexed via 'reg' property (as advised by the standard), the above matching
    mechanism based on the simple common name will lead to multiple matches and
    the only viable alternative would be to properly define the now deprecated
    'regulator-compatible' as the node full name, i.e. <common-name>@<unit>.
    
    In order to address this case without using such deprecated binding, define
    a new boolean flag .of_match_full_name in struct regulator_desc to force
    the core to match against the node full-name instead of the plain name.
    Signed-off-by: default avatarCristian Marussi <cristian.marussi@arm.com>
    Link: https://lore.kernel.org/r/20201119191051.46363-4-cristian.marussi@arm.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    e7095c35
of_regulator.c 16.5 KB