diff options
Diffstat (limited to 'include/linux/of.h')
-rw-r--r-- | include/linux/of.h | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/include/linux/of.h b/include/linux/of.h index 6ecde0515677..ed679819c279 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -96,10 +96,12 @@ struct of_reconfig_data { struct property *old_prop; }; +extern const struct kobj_type of_node_ktype; +extern const struct fwnode_operations of_fwnode_ops; + /** * of_node_init - initialize a devicetree node * @node: Pointer to device node that has been created by kzalloc() - * @phandle_name: Name of property holding a phandle value * * On return the device_node refcount is set to one. Use of_node_put() * on @node when done to free the memory allocated for it. If the node @@ -107,9 +109,6 @@ struct of_reconfig_data { * whether to free the memory will be done by node->release(), which is * of_node_release(). */ -/* initialize a node */ -extern const struct kobj_type of_node_ktype; -extern const struct fwnode_operations of_fwnode_ops; static inline void of_node_init(struct device_node *node) { #if defined(CONFIG_OF_KOBJ) @@ -1580,6 +1579,29 @@ static inline int of_changeset_update_property(struct of_changeset *ocs, { return of_changeset_action(ocs, OF_RECONFIG_UPDATE_PROPERTY, np, prop); } + +struct device_node *of_changeset_create_node(struct of_changeset *ocs, + struct device_node *parent, + const char *full_name); +int of_changeset_add_prop_string(struct of_changeset *ocs, + struct device_node *np, + const char *prop_name, const char *str); +int of_changeset_add_prop_string_array(struct of_changeset *ocs, + struct device_node *np, + const char *prop_name, + const char **str_array, size_t sz); +int of_changeset_add_prop_u32_array(struct of_changeset *ocs, + struct device_node *np, + const char *prop_name, + const u32 *array, size_t sz); +static inline int of_changeset_add_prop_u32(struct of_changeset *ocs, + struct device_node *np, + const char *prop_name, + const u32 val) +{ + return of_changeset_add_prop_u32_array(ocs, np, prop_name, &val, 1); +} + #else /* CONFIG_OF_DYNAMIC */ static inline int of_reconfig_notifier_register(struct notifier_block *nb) { @@ -1645,7 +1667,7 @@ struct of_overlay_notify_data { #ifdef CONFIG_OF_OVERLAY int of_overlay_fdt_apply(const void *overlay_fdt, u32 overlay_fdt_size, - int *ovcs_id); + int *ovcs_id, struct device_node *target_base); int of_overlay_remove(int *ovcs_id); int of_overlay_remove_all(void); |