Lines Matching refs:uc
25 struct uclass *uc; in uclass_find() local
34 list_for_each_entry(uc, &gd->uclass_root, sibling_node) { in uclass_find()
35 if (uc->uc_drv->id == key) in uclass_find()
36 return uc; in uclass_find()
38 if (uc->uc_drv->id == UCLASS_ROOT) in uclass_find()
57 struct uclass *uc; in uclass_add() local
72 uc = calloc(1, sizeof(*uc)); in uclass_add()
73 if (!uc) in uclass_add()
76 uc->priv = calloc(1, uc_drv->priv_auto_alloc_size); in uclass_add()
77 if (!uc->priv) { in uclass_add()
82 uc->uc_drv = uc_drv; in uclass_add()
84 uc->u_boot_dev_head = NULL; in uclass_add()
86 INIT_LIST_HEAD(&uc->sibling_node); in uclass_add()
87 INIT_LIST_HEAD(&uc->dev_head); in uclass_add()
88 list_add(&uc->sibling_node, &DM_UCLASS_ROOT_NON_CONST); in uclass_add()
91 ret = uc_drv->init(uc); in uclass_add()
96 *ucp = uc; in uclass_add()
101 free(uc->priv); in uclass_add()
102 uc->priv = NULL; in uclass_add()
104 list_del(&uc->sibling_node); in uclass_add()
106 free(uc); in uclass_add()
111 int uclass_destroy(struct uclass *uc) in uclass_destroy() argument
123 while (!list_empty(&uc->dev_head)) { in uclass_destroy()
124 dev = list_first_entry(&uc->dev_head, struct udevice, in uclass_destroy()
134 uc_drv = uc->uc_drv; in uclass_destroy()
136 uc_drv->destroy(uc); in uclass_destroy()
137 list_del(&uc->sibling_node); in uclass_destroy()
139 free(uc->priv); in uclass_destroy()
140 free(uc); in uclass_destroy()
147 struct uclass *uc; in uclass_get() local
150 uc = uclass_find(id); in uclass_get()
151 if (!uc) in uclass_get()
153 *ucp = uc; in uclass_get()
160 struct uclass *uc; in uclass_get_name() local
162 if (uclass_get(id, &uc)) in uclass_get_name()
164 return uc->uc_drv->name; in uclass_get_name()
183 struct uclass *uc; in uclass_find_device() local
188 ret = uclass_get(id, &uc); in uclass_find_device()
191 if (list_empty(&uc->dev_head)) in uclass_find_device()
194 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_find_device()
206 struct uclass *uc; in uclass_find_first_device() local
210 ret = uclass_get(id, &uc); in uclass_find_first_device()
213 if (list_empty(&uc->dev_head)) in uclass_find_first_device()
216 *devp = list_first_entry(&uc->dev_head, struct udevice, uclass_node); in uclass_find_first_device()
237 struct uclass *uc; in uclass_find_device_by_name() local
244 ret = uclass_get(id, &uc); in uclass_find_device_by_name()
248 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_find_device_by_name()
261 struct uclass *uc; in uclass_find_device_by_seq() local
269 ret = uclass_get(id, &uc); in uclass_find_device_by_seq()
273 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_find_device_by_seq()
290 struct uclass *uc; in uclass_find_device_by_of_offset() local
297 ret = uclass_get(id, &uc); in uclass_find_device_by_of_offset()
301 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_find_device_by_of_offset()
314 struct uclass *uc; in uclass_find_device_by_ofnode() local
321 ret = uclass_get(id, &uc); in uclass_find_device_by_ofnode()
325 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_find_device_by_ofnode()
342 struct uclass *uc; in uclass_find_device_by_phandle() local
350 ret = uclass_get(id, &uc); in uclass_find_device_by_phandle()
354 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_find_device_by_phandle()
374 struct uclass *uc; in uclass_get_device_by_driver() local
377 ret = uclass_get(id, &uc); in uclass_get_device_by_driver()
381 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_get_device_by_driver()
470 struct uclass *uc; in uclass_get_device_by_phandle_id() local
474 ret = uclass_get(id, &uc); in uclass_get_device_by_phandle_id()
479 list_for_each_entry(dev, &uc->dev_head, uclass_node) { in uclass_get_device_by_phandle_id()
572 struct uclass *uc; in uclass_bind_device() local
575 uc = dev->uclass; in uclass_bind_device()
578 list_add_tail(&dev->uclass_node, &uc->dev_head); in uclass_bind_device()
580 list_add_tail(&dev->uclass_node, uc->u_boot_dev_head); in uclass_bind_device()
582 list_add_tail(&dev->uclass_node, &uc->dev_head); in uclass_bind_device()
605 struct uclass *uc; in uclass_unbind_device() local
608 uc = dev->uclass; in uclass_unbind_device()
609 if (uc->uc_drv->pre_unbind) { in uclass_unbind_device()
610 ret = uc->uc_drv->pre_unbind(dev); in uclass_unbind_device()
685 struct uclass *uc; in uclass_pre_remove_device() local
688 uc = dev->uclass; in uclass_pre_remove_device()
689 if (uc->uc_drv->pre_remove) { in uclass_pre_remove_device()
690 ret = uc->uc_drv->pre_remove(dev); in uclass_pre_remove_device()