Lines Matching refs:node
119 /* Always match the root node */
165 struct fdt_node *node;
168 TAILQ_FOREACH(node, &fdt_nodes, n_nodes)
169 fdt_scan_best(sc, node);
177 TAILQ_FOREACH(node, &fdt_nodes, n_nodes) {
178 if (node->n_cfpass == -1)
179 fdt_scan_best(sc, node);
193 struct fdt_node *node;
195 TAILQ_FOREACH(node, &fdt_nodes, n_nodes)
196 if (node->n_dev == child) {
197 node->n_dev = NULL;
203 fdt_init_attach_args(const struct fdt_attach_args *faa_tmpl, struct fdt_node *node,
207 faa->faa_phandle = node->n_phandle;
208 faa->faa_name = node->n_name;
210 faa->faa_bst = node->n_faa.faa_bst;
211 faa->faa_dmat = fdtbus_iommu_map(node->n_phandle, 0,
212 node->n_faa.faa_dmat);
285 fdt_get_dma_tag(struct fdt_node *node)
291 parent = OF_parent(node->n_phandle);
298 return fdtbus_dma_tag_create(node->n_phandle, ranges, nranges);
313 fdt_get_bus_tag(struct fdt_node *node)
318 parent = OF_parent(node->n_phandle);
326 return fdtbus_bus_tag_create(node->n_phandle, flags);
333 struct fdt_node *node;
335 /* Add the node to our device list */
336 node = kmem_zalloc(sizeof(*node), KM_SLEEP);
337 node->n_bus = bus;
338 node->n_dev = NULL;
339 node->n_phandle = child;
340 node->n_name = fdtbus_get_string(child, "name");
341 node->n_cfpass = -1;
342 node->n_cf = NULL;
343 node->n_order = order;
345 node->n_faa = *faa;
347 memset(&node->n_faa, 0, sizeof(node->n_faa));
349 node->n_faa.faa_phandle = child;
350 node->n_faa.faa_name = node->n_name;
351 node->n_faa.faa_bst = fdt_get_bus_tag(node);
352 node->n_faa.faa_dmat = fdt_get_dma_tag(node);
354 fdt_add_node(node);
369 fdt_scan_best(struct fdt_softc *sc, struct fdt_node *node)
383 fdt_init_attach_args(&sc->sc_faa, node, true, &faa);
384 cf = config_search(node->n_bus, &faa,
390 match = config_match(node->n_bus, cf, &faa);
398 node->n_cf = best_cf;
399 node->n_cfpass = best_pass;
405 struct fdt_node *node;
412 TAILQ_FOREACH(node, &fdt_nodes, n_nodes) {
413 if (node->n_cfpass != pass || node->n_dev != NULL)
416 fdt_init_attach_args(&sc->sc_faa, node, quiet, &faa);
418 if (quiet && node->n_cf == NULL) {
428 fdt_pre_attach(node);
430 devhandle_t nodeh = device_handle(node->n_bus);
433 node->n_dev = config_attach(node->n_bus, node->n_cf,
438 node->n_phandle)));
443 node->n_dev = config_found(node->n_bus, &faa,
450 node->n_phandle)));
453 if (node->n_dev != NULL)
454 fdt_post_attach(node);
459 fdt_pre_attach(struct fdt_node *node)
464 node->n_pinctrl_init = fdtbus_pinctrl_has_config(node->n_phandle, "init");
466 cfgname = node->n_pinctrl_init ? "init" : "default";
468 aprint_debug_dev(node->n_bus, "set %s config for %s\n", cfgname, node->n_name);
470 error = fdtbus_pinctrl_set_config(node->n_phandle, cfgname);
472 aprint_debug_dev(node->n_bus,
474 cfgname, node->n_name, error);
476 fdtbus_powerdomain_enable(node->n_phandle);
480 fdt_post_attach(struct fdt_node *node)
484 if (node->n_pinctrl_init) {
485 aprint_debug_dev(node->n_bus, "set default config for %s\n", node->n_name);
486 error = fdtbus_pinctrl_set_config(node->n_phandle, "default");
488 aprint_debug_dev(node->n_bus,
490 node->n_name, error);
497 struct fdt_node *node;
499 TAILQ_FOREACH(node, &fdt_nodes, n_nodes)
500 if (node->n_order > new_node->n_order) {
501 TAILQ_INSERT_BEFORE(node, new_node, n_nodes);
510 struct fdt_node *node;
512 TAILQ_FOREACH(node, &fdt_nodes, n_nodes) {
513 if (node->n_phandle == phandle) {
514 TAILQ_REMOVE(&fdt_nodes, node, n_nodes);
523 struct fdt_node *node, *next;
525 TAILQ_FOREACH_SAFE(node, &fdt_nodes, n_nodes, next) {
526 if (of_compatible(node->n_phandle, compatible)) {
527 TAILQ_REMOVE(&fdt_nodes, node, n_nodes);
535 struct fdt_node *node;
538 TAILQ_FOREACH(node, &fdt_nodes, n_nodes) {
541 if (of_hasprop(node->n_phandle, prop)) {
543 return node->n_phandle;