of: Add device_type access helper functions
Rob Herring
maintainerPATCH 1/1 of: Add device_type access helper functions
In preparation to remove direct access to device_node.type, add of_node_is_type() and of_node_get_device_type() helpers to check and retrieve the device type.
--- include/linux/of.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)
include/linux/of.h +12 -0
@@ -980,6 +980,18 @@ static inline struct device_node *of_find_matching_node(return of_find_matching_node_and_match (from, matches,NULL ); } +static inline const char *of_node_get_device_type (const struct device_node *np) +{ +return of_get_property (np,"type" ,NULL ); +} + +static inline bool of_node_is_type (const struct device_node *np,const char *type) +{ +const char *match =of_node_get_device_type (np); + +return np && match && type && !of_prop_cmp (match, type); +} +/** * of_property_count_u8_elems - Count the number of u8 elements in a property *
Signature · 1 line
2.17.1
Quoted 15 lines · Rob Herring
In preparation to remove direct access to device_node.type, add
of_node_is_type()andof_node_get_device_type()helpers to check and retrieve the device type.Cc Frank Rowand <[email protected]>Signed-off-by Rob Herring <[email protected]>--- include/linux/of.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)include/linux/of.h +0
-0
include/linux/of.h static inline struct device_node *of_find_matching_node( · line 985
Quoted 6 lines
include/linux/of.h +3
-0@@ -980,6 +980,18 @@ static inline struct device_node *of_find_matching_node(return of_find_matching_node_and_match (from, matches,NULL ); } +static inline const char *of_node_get_device_type (const struct device_node *np) +{ +return of_get_property (np,"type" ,NULL );
I'm a little confused. The patch comment says "remove direct access to device_node.type. device_node.type is set to the value of the property "device_type" in populate_node(), but of_node_get_device_type() is looking for property "type".
include/linux/of.h static inline struct device_node *of_find_matching_node( · line 997
Quoted 12 lines
include/linux/of.h +8
-0+}> + +static inline bool of_node_is_type(const struct device_node *np, const char *type) +{ +const char *match =of_node_get_device_type (np); + +return np && match && type && !of_prop_cmp (match, type); +} +/** * of_property_count_u8_elems - Count the number of u8 elements in a property *
I'd like to see one or two examples of how you plan to use of_node_get_device_type() (outside of of_node_is_type()) and examples of planned use of of_node_is_type() so I can better understand anticipated usage. Complete, clean patches not needed for the examples, just enough text for me to see the resulting code change where the helpers are used.
-Frank
Rob Herring
maintainerQuoted 20 lines · Frank Rowand
Quoted 18 lines · Rob Herring
In preparation to remove direct access to device_node.type, add
of_node_is_type()andof_node_get_device_type()helpers to check and retrieve the device type.Cc Frank Rowand <[email protected]>Signed-off-by Rob Herring <[email protected]>--- include/linux/of.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)include/linux/of.h +0
-0@@ -980,6 +980,18 @@ static inline struct device_node *of_find_matching_node(return of_find_matching_node_and_match (from, matches,NULL ); }
Quoted 7 lines
include/linux/of.h static inline struct device_node *of_find_matching_node( · line 985
Quoted 3 lines
include/linux/of.h +3
-0+static inline const char *of_node_get_device_type (const struct device_node *np) +{ +return of_get_property (np,"type" ,NULL );I'm a little confused. The patch comment says "remove direct access to device_node.type. device_node.type is set to the value of the property "
device_type" inpopulate_node(), butof_node_get_device_type()is looking for property "type".
Crap. That should be device_type.
Quoted 11 lines
Quoted 11 lines
include/linux/of.h +8
-0+}> + +static inline bool of_node_is_type(const struct device_node *np, const char *type) +{ +const char *match =of_node_get_device_type (np); + +return np && match && type && !of_prop_cmp (match, type); +} +/** * of_property_count_u8_elems - Count the number of u8 elements in a property
Quoted 8 lines
include/linux/of.h static inline struct device_node *of_find_matching_node( · line 996
Quoted 2 lines
include/linux/of.h +0
-0* I'd like to see one or two examples of how you plan to use
of_node_get_device_type()(outside ofof_node_is_type()) and examples of planned use ofof_node_is_type()so I can better understand anticipated usage. Complete, clean patches not needed for the examples, just enough text for me to see the resulting code change where the helpers are used.
See my dt/testing branch. Most cases are of_node_is_type which replaces strcmp's of node->type. I'll be sending out the patches soon.
Rob