lkml.org 
[lkml]   [2023]   [Feb]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 09/22] of: base: add of_parse_phandle_with_optional_args()
    Date
    From: Michael Walle <michael@walle.cc>

    Add a new variant of the of_parse_phandle_with_args() which treats the
    cells name as optional. If it's missing, it is assumed that the phandle
    has no arguments.

    Up until now, a nvmem node didn't have any arguments, so all the device
    trees haven't any '#*-cells' property. But there is a need for an
    additional argument for the phandle, for which we need a '#*-cells'
    property. Therefore, we need to support nvmem nodes with and without
    this property.

    Signed-off-by: Michael Walle <michael@walle.cc>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    ---
    include/linux/of.h | 25 +++++++++++++++++++++++++
    1 file changed, 25 insertions(+)

    diff --git a/include/linux/of.h b/include/linux/of.h
    index 8b9f94386dc3..98c252d2d851 100644
    --- a/include/linux/of.h
    +++ b/include/linux/of.h
    @@ -1008,6 +1008,31 @@ static inline int of_parse_phandle_with_fixed_args(const struct device_node *np,
    index, out_args);
    }

    +/**
    + * of_parse_phandle_with_optional_args() - Find a node pointed by phandle in a list
    + * @np: pointer to a device tree node containing a list
    + * @list_name: property name that contains a list
    + * @cells_name: property name that specifies phandles' arguments count
    + * @index: index of a phandle to parse out
    + * @out_args: optional pointer to output arguments structure (will be filled)
    + *
    + * Same as of_parse_phandle_with_args() except that if the cells_name property
    + * is not found, cell_count of 0 is assumed.
    + *
    + * This is used to useful, if you have a phandle which didn't have arguments
    + * before and thus doesn't have a '#*-cells' property but is now migrated to
    + * having arguments while retaining backwards compatibility.
    + */
    +static inline int of_parse_phandle_with_optional_args(const struct device_node *np,
    + const char *list_name,
    + const char *cells_name,
    + int index,
    + struct of_phandle_args *out_args)
    +{
    + return __of_parse_phandle_with_args(np, list_name, cells_name,
    + 0, index, out_args);
    +}
    +
    /**
    * of_property_count_u8_elems - Count the number of u8 elements in a property
    *
    --
    2.25.1
    \
     
     \ /
      Last update: 2023-03-27 00:11    [W:4.031 / U:0.372 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site