Lines Matching refs:swnode

27 struct swnode {
37 struct swnode *parent;
46 #define kobj_to_swnode(_kobj_) container_of(_kobj_, struct swnode, kobj)
62 struct swnode, fwnode) : NULL; \
65 static inline struct swnode *dev_to_swnode(struct device *dev)
78 static struct swnode *
81 struct swnode *swnode = NULL;
90 swnode = kobj_to_swnode(k);
91 if (swnode->node == node)
93 swnode = NULL;
98 return swnode;
103 const struct swnode *swnode = to_swnode(fwnode);
105 return swnode ? swnode->node : NULL;
111 struct swnode *swnode = software_node_to_swnode(node);
113 return swnode ? &swnode->fwnode : NULL;
379 struct swnode *swnode = to_swnode(fwnode);
381 kobject_get(&swnode->kobj);
383 return &swnode->fwnode;
388 struct swnode *swnode = to_swnode(fwnode);
390 kobject_put(&swnode->kobj);
396 struct swnode *swnode = to_swnode(fwnode);
398 return !!property_entry_get(swnode->node->properties, propname);
406 struct swnode *swnode = to_swnode(fwnode);
408 return property_entry_read_int_array(swnode->node->properties, propname,
416 struct swnode *swnode = to_swnode(fwnode);
418 return property_entry_read_string_array(swnode->node->properties,
425 const struct swnode *swnode = to_swnode(fwnode);
427 return kobject_name(&swnode->kobj);
454 struct swnode *swnode = to_swnode(fwnode);
456 if (!swnode || !swnode->parent)
459 return fwnode_handle_get(&swnode->parent->fwnode);
466 struct swnode *p = to_swnode(fwnode);
467 struct swnode *c = to_swnode(child);
478 c = list_first_entry(&p->children, struct swnode, entry);
488 struct swnode *swnode = to_swnode(fwnode);
489 struct swnode *child;
491 if (!swnode || list_empty(&swnode->children))
494 list_for_each_entry(child, &swnode->children, entry) {
509 struct swnode *swnode = to_swnode(fwnode);
518 prop = property_entry_get(swnode->node->properties, propname);
591 struct swnode *swnode = to_swnode(fwnode);
595 if (!swnode)
604 parent = software_node_get(&swnode->fwnode);
625 struct swnode *swnode = to_swnode(fwnode);
629 if (!swnode)
632 prop = property_entry_get(swnode->node->properties, "remote-endpoint");
644 struct swnode *swnode = to_swnode(fwnode);
646 swnode = swnode->parent;
647 if (swnode && !strcmp(swnode->node->name, "ports"))
648 swnode = swnode->parent;
650 return swnode ? software_node_get(&swnode->fwnode) : NULL;
657 struct swnode *swnode = to_swnode(fwnode);
658 const char *parent_name = swnode->parent->node->name;
670 endpoint->id = swnode->id;
709 struct swnode *swnode = NULL;
718 swnode = kobj_to_swnode(k);
719 if (parent == swnode->node->parent && swnode->node->name &&
720 !strcmp(name, swnode->node->name)) {
721 kobject_get(&swnode->kobj);
724 swnode = NULL;
729 return swnode ? swnode->node : NULL;
761 struct swnode *swnode = kobj_to_swnode(kobj);
763 if (swnode->parent) {
764 ida_free(&swnode->parent->child_ids, swnode->id);
765 list_del(&swnode->entry);
767 ida_free(&swnode_root_ids, swnode->id);
770 if (swnode->allocated)
771 software_node_free(swnode->node);
773 ida_destroy(&swnode->child_ids);
774 kfree(swnode);
783 swnode_register(const struct software_node *node, struct swnode *parent,
786 struct swnode *swnode;
789 swnode = kzalloc(sizeof(*swnode), GFP_KERNEL);
790 if (!swnode)
796 kfree(swnode);
800 swnode->id = ret;
801 swnode->node = node;
802 swnode->parent = parent;
803 swnode->kobj.kset = swnode_kset;
804 fwnode_init(&swnode->fwnode, &software_node_ops);
806 ida_init(&swnode->child_ids);
807 INIT_LIST_HEAD(&swnode->entry);
808 INIT_LIST_HEAD(&swnode->children);
811 ret = kobject_init_and_add(&swnode->kobj, &software_node_type,
815 ret = kobject_init_and_add(&swnode->kobj, &software_node_type,
817 "node%d", swnode->id);
819 kobject_put(&swnode->kobj);
827 swnode->allocated = allocated;
830 list_add_tail(&swnode->entry, &parent->children);
832 kobject_uevent(&swnode->kobj, KOBJ_ADD);
833 return &swnode->fwnode;
901 struct swnode *parent = software_node_to_swnode(node->parent);
919 struct swnode *swnode;
921 swnode = software_node_to_swnode(node);
922 if (swnode)
923 fwnode_remove_software_node(&swnode->fwnode);
933 struct swnode *p;
958 struct swnode *swnode = to_swnode(fwnode);
960 if (!swnode)
963 kobject_put(&swnode->kobj);
978 struct swnode *swnode;
985 swnode = software_node_to_swnode(node);
986 if (swnode) {
987 kobject_get(&swnode->kobj);
993 swnode = software_node_to_swnode(node);
996 set_secondary_fwnode(dev, &swnode->fwnode);
1019 struct swnode *swnode;
1021 swnode = dev_to_swnode(dev);
1022 if (!swnode)
1029 kobject_put(&swnode->kobj);
1075 struct swnode *swnode;
1078 swnode = dev_to_swnode(dev);
1079 if (!swnode)
1082 ret = sysfs_create_link(&dev->kobj, &swnode->kobj, "software_node");
1086 ret = sysfs_create_link(&swnode->kobj, &dev->kobj, dev_name(dev));
1092 kobject_get(&swnode->kobj);
1097 struct swnode *swnode;
1099 swnode = dev_to_swnode(dev);
1100 if (!swnode)
1103 sysfs_remove_link(&swnode->kobj, dev_name(dev));
1105 kobject_put(&swnode->kobj);
1107 if (swnode->managed) {
1109 kobject_put(&swnode->kobj);