Lines Matching refs:node
352 def scan_node(self, node, valid_nodes): argument
362 for subnode in node.subnodes:
417 for idx, node in enumerate(self._valid_nodes):
418 node.idx = idx
419 node.struct_name, _ = self._scan.get_normalized_compat_name(node)
420 node.var_name = conv_name_to_c(node.name)
421 node.child_devs = []
422 node.child_refs = {}
423 node.seq = -1
424 node.dev_ref = None
425 node.driver = None
426 node.uclass = None
427 node.uclass_seq = None
428 node.parent_seq = None
429 node.parent_driver = None
432 def get_num_cells(node): argument
443 parent = node.parent
464 for node in self._valid_nodes:
465 reg = node.props.get('reg')
468 num_addr, num_size = self.get_num_cells(node)
473 node.name)
480 (node.name, node.parent.name, len(reg.value), num_addr,
511 for node in self._valid_nodes:
515 for name, prop in node.props.items():
520 if node.struct_name in structs:
521 struct = structs[node.struct_name]
531 structs[node.struct_name] = fields
533 for node in self._valid_nodes:
534 struct = structs[node.struct_name]
535 for name, prop in node.props.items():
550 for node in self._valid_nodes:
551 node.phandles = set()
552 for pname, prop in node.props.items():
555 info = self.get_phandle_argc(prop, node.name)
563 node.phandles.add(target_node)
599 def _output_list(self, node, prop): argument
610 info = self.get_phandle_argc(prop, node.name)
638 def _declare_device(self, node): argument
646 self.buf('U_BOOT_DRVINFO(%s) = {\n' % node.var_name)
647 self.buf('\t.name\t\t= "%s",\n' % node.struct_name)
648 self.buf('\t.plat\t\t= &%s%s,\n' % (VAL_PREFIX, node.var_name))
650 (VAL_PREFIX, node.var_name))
652 if node.parent and node.parent in self._valid_nodes:
653 idx = node.parent.idx
679 def alloc_plat(self, info, name, extra, node): argument
687 for pname in sorted(node.props):
688 self._output_prop(node, node.props[pname], 2)
693 def _declare_device_inst(self, node, parent_driver): argument
701 driver = node.driver
702 uclass = node.uclass
705 plat_name = self.alloc_plat(driver.plat, driver.name, node.var_name,
706 node)
707 priv_name = self.alloc_priv(driver.priv, driver.name, node.var_name)
713 parent_driver.child_plat, driver.name, node.var_name,
716 parent_driver.child_priv, driver.name, node.var_name,
719 uclass.per_dev_plat, driver.name + '_uc', node.var_name, 'plat')
721 driver.name + '_uc', node.var_name)
729 self.buf('DM_DEVICE_INST(%s) = {\n' % node.var_name)
730 self.buf('\t.driver\t\t= DM_DRIVER_REF(%s),\n' % node.struct_name)
731 self.buf('\t.name\t\t= "%s",\n' % node.struct_name)
735 self.buf('\t.plat_\t\t= &%s%s,\n' % (VAL_PREFIX, node.var_name))
742 if node != self._fdt.GetRoot():
743 compat_list = node.props['compatible'].value
752 if node.parent and node.parent.parent:
753 if node.parent not in self._valid_nodes:
761 (node.path, node.parent.path))
763 node.parent.var_name)
772 self.list_node('uclass_node', uclass.node_refs, node.uclass_seq)
773 self.list_head('child_head', 'sibling_node', node.child_devs, node.var_name)
774 if node.parent in self._valid_nodes:
775 self.list_node('sibling_node', node.parent.child_refs,
776 node.parent_seq)
779 self.buf('\t.seq_ = %d,\n' % node.seq)
785 def _output_prop(self, node, prop, tabs=1): argument
799 self._output_list(node, prop)
804 def _output_values(self, node): argument
811 (STRUCT_PREFIX, node.struct_name, VAL_PREFIX, node.var_name))
812 for pname in sorted(node.props):
813 self._output_prop(node, node.props[pname])
853 for seq, node in uclass.alias_num_to_node.items():
854 self.buf(' * %d: %s\n' % (seq, node.path))
900 node = self._fdt.GetNode(prop.value)
901 result = self._scan.add_uclass_alias(name, num, node)
916 for node in nodes_to_output:
917 self.buf('extern U_BOOT_DRIVER(%s);\n' % node.struct_name);
923 for node in nodes_to_output:
924 self.buf('extern DM_DEVICE_INST(%s);\n' % node.var_name)
943 for node in self._valid_nodes_unsorted:
944 seq = self._scan.assign_seq(node)
946 node.seq = seq
954 for node in nodes_to_output:
955 node.dev_ref = 'DM_DEVICE_REF(%s)' % node.var_name
956 driver = self._scan.get_driver(node.struct_name)
961 node.struct_name)
962 node.driver = driver
966 (driver.uclass_id, node.struct_name))
967 node.uclass = uclass
968 node.uclass_seq = len(node.uclass.devs)
969 node.uclass.devs.append(node)
970 uclass.node_refs[node.uclass_seq] = \
971 '&%s->uclass_node' % node.dev_ref
974 if node.parent in self._valid_nodes:
975 parent_driver = self._scan.get_driver(node.parent.struct_name)
981 (node.parent.struct_name, node.struct_name))
982 node.parent_seq = len(node.parent.child_devs)
983 node.parent.child_devs.append(node)
984 node.parent.child_refs[node.parent_seq] = \
985 '&%s->sibling_node' % node.dev_ref
986 node.parent_driver = parent_driver
988 for node in nodes_to_output:
989 ref = '&%s->child_head' % node.dev_ref
990 node.child_refs[-1] = ref
991 node.child_refs[len(node.child_devs)] = ref
1005 def output_node_plat(self, node): argument
1011 driver = node.driver
1012 parent_driver = node.parent_driver
1014 line1 = 'Node %s index %d' % (node.path, node.idx)
1024 self._output_values(node)
1025 self._declare_device(node)
1029 def output_node_instance(self, node): argument
1035 parent_driver = node.parent_driver
1038 self.buf(' * Node %s index %d\n' % (node.path, node.idx))
1039 self.buf(' * driver %s parent %s\n' % (node.driver.name,
1043 if not node.driver.plat:
1044 self._output_values(node)
1045 self._declare_device_inst(node, parent_driver)
1074 for node in self._valid_nodes:
1076 (node.idx, node.var_name, node.struct_name))
1081 for node in self._valid_nodes:
1082 self.output_node_plat(node)
1107 for node in self._valid_nodes:
1109 (node.idx, node.var_name, node.struct_name))
1114 for node in self._valid_nodes:
1115 self.output_node_instance(node)