def _init_dboards(self, dboard_infos, override_dboard_pids, default_args): """ Initialize all the daughterboards dboard_infos -- List of dictionaries as returned from PeriphManagerBase._get_dboard_eeprom_info() override_dboard_pids -- List of dboard PIDs to force default_args -- Default args """ # Overriding DB PIDs doesn't work here, the DB is coupled to the MB if override_dboard_pids: raise NotImplementedError("Can't override dboard pids") # We have only one dboard dboard_info = dboard_infos[0] # Set up the SPI nodes assert len(self.dboard_spimaster_addrs) == 1 spi_nodes = get_spidev_nodes(self.dboard_spimaster_addrs[0]) assert spi_nodes self.log.trace("Found spidev nodes: {0}".format(str(spi_nodes))) dboard_info.update({ 'spi_nodes': spi_nodes, 'default_args': default_args, }) self.dboards.append(E31x_db(E310_DBOARD_SLOT_IDX, **dboard_info)) self.log.info("Found %d daughterboard(s).", len(self.dboards))
def _init_dboards(self, dboard_infos, override_dboard_pids, default_args): """ Initialize all the daughterboards dboard_infos -- List of dictionaries as returned from PeriphManagerBase._get_dboard_eeprom_info() override_dboard_pids -- List of dboard PIDs to force default_args -- Default args """ # Override the base class's implementation in order to avoid initializing our one "dboard" # in the same way that, for example, N310's dboards are initialized. Specifically, # - skip dboard EEPROM setup (we don't have one) # - change the way we handle SPI devices if override_dboard_pids: self.log.warning("Overriding daughterboard PIDs with: {}" .format(override_dboard_pids)) raise NotImplementedError("Can't override dboard pids") # We have only one dboard dboard_info = dboard_infos[0] # Set up the SPI nodes spi_nodes = [] for spi_addr in self.dboard_spimaster_addrs: for spi_node in get_spidev_nodes(spi_addr): bisect.insort(spi_nodes, spi_node) self.log.trace("Found spidev nodes: {0}".format(spi_nodes)) if not spi_nodes: self.log.warning("No SPI nodes for dboard %d.", E310_DBOARD_SLOT_IDX) else: dboard_info.update({ 'spi_nodes': spi_nodes, 'default_args': default_args, }) self.dboards.append(E31x_db(E310_DBOARD_SLOT_IDX, **dboard_info)) self.log.info("Found %d daughterboard(s).", len(self.dboards))